CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

forms验证问题!

楼主yb2008(中科商务网--ZKE360.COM)2005-01-27 15:10:13 在 .NET技术 / ASP.NET 提问

本人正在做一个登录的验证,主要用forms,  
   
  web.config如下:  
   
  <configuration>    
        <system.web>    
                <authentication   mode="Forms">    
      <forms   name=".ASPXUSERDEMO"   loginUrl="index.aspx"   protection="All"   timeout="30"    
   
  path="/">  
                      </forms>  
  </authentication>    
          <authorization>              
                                <deny   users="?"></deny>                                        
          </authorization>  
        </system.web>    
  </configuration>  
   
  login.asp  
   
  <%   @   Page   Language="C#"   %>  
  <%   @   Import   Namespace="System.Data"   %>  
  <%   @   Import   Namespace="System.Data.OleDb"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN">  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>验证</title>  
  </head>  
  <%  
  OleDbConnection   MyConn;  
   
   
          //连接语句  
  string   user=Request.Form["user"];  
          string   pwd=Request.Form["pwd"];  
        //   Response.Write(user+pwd);  
   
          string   MyConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="+Server.MapPath(".")+"..\\data\\data.mdb;";  
        MyConn=new   OleDbConnection(MyConnString);  
         
        string   sqlstr="select   *   from   admin   where   username   =   '"+user+"'   and   pwd='"+pwd+"'";  
        OleDbCommand   MyComm=new   OleDbCommand(sqlstr,MyConn);  
        MyConn.Open();  
        OleDbDataReader   reader;  
        reader=   MyComm.ExecuteReader();  
        if   (reader.Read())  
            {  
               
  //   Session["userName"]=user;  
                    //Response.Write(Session["userName"].ToString());    
    FormsAuthentication.RedirectFromLoginPage(txtUsername.Text,   False);  
  //   Response.Redirect("loginok.aspx");  
    }  
  else  
    {  
                  Response.Write("<script   language=javascript>alert('用户名或密码错误!');</script>");  
  Response.Redirect("index.aspx");  
    }  
  %>  
   
   
  <body>  
   
  </body>  
  </html>  
   
  参看:http://yb2008.vicp.net/NetSystem/  
   
  每次提交后用户密码者为admin,但提交后又回到index.asp,实在不知道是什么原因!  
   
   
  谢谢!  
  问题点数:50、回复次数:18Top

1 楼sean168(最爱拉布拉多)回复于 2005-01-27 15:17:34 得分 30

Response.Redirect("loginok.aspx")你是跳转到这页吗  
  Top

2 楼yb2008(中科商务网--ZKE360.COM)回复于 2005-01-27 15:22:28 得分 0

 
    sean168(凉风有兴,秋月无边)  
   
  我是先由index.asp提交数据到login.asp判断通过再到loginok.asp(主界面)  
  如果没有通过,就到index.aspTop

3 楼webserv2(New life New job)回复于 2005-01-27 15:22:56 得分 2

Response.Write("<script   language=javascript>alert('用户名或密码错误!');</script>");  
  Response.Redirect("index.aspx");  
   
  这个没有必要   两个要一个就好了Top

4 楼sean168(最爱拉布拉多)回复于 2005-01-27 15:27:31 得分 10

参考一下吧,这是最简单的,自己改一下,看你的也看不出什么。  
  config--------------->  
   
  <authentication   mode="Forms"   >    
  <forms   loginUrl="login.aspx"></forms>  
  </authentication>  
  <authorization>  
  <deny   users="?"/>  
  </authorization>  
   
  .CS----------------->  
   
  string   UserName=this.TextBox1.Text.Trim();  
  string   Pass=this.Textbox2.Text.Trim();  
  SqlConnection   Mycon=new   SqlConnection(server=(local);DataBase=jdp;User   ID=sa;Pwd=;Timeout=900");  
  string   Sql="select   UserName,Pass   from   dbo.UserInfo   where   UserName='"+UserName+"'and   Pass='"+Pass+"'";  
   
  SqlDataAdapter   Dat=new   SqlDataAdapter(Sql,Mycon);  
  DataTable   Dt=new   DataTable();  
  Dat.Fill(Dt);  
  if(Dt.Rows.Count>0)  
  {  
   
  FormsAuthentication.RedirectFromLoginPage(UserName,false);  
  Response.Redirect("default.aspx?User="+this.TextBox1.Text.Trim());  
  }  
  else  
  {  
  Response.Write("<script>alert('你输入的密码错误!'Top

5 楼yb2008(中科商务网--ZKE360.COM)回复于 2005-01-27 15:28:49 得分 0

试了,还是不行,重回到index.aspTop

6 楼yb2008(中科商务网--ZKE360.COM)回复于 2005-01-27 15:30:45 得分 0

是不是我的forms验证用错了,超初用session的可以,但两分钟就超时,一直没解决,改用forms了!Top

7 楼yb2008(中科商务网--ZKE360.COM)回复于 2005-01-27 15:43:00 得分 0

loginUrl="index.aspx"我改成login.aspx又出现新问题了!  
  参看!  
   
  http://yb2008.vicp.net/NetSystem/  
   
  Top

8 楼sean168(最爱拉布拉多)回复于 2005-01-27 15:46:54 得分 0

我是直接login.aspx一个页  
  所以  
  <authentication   mode="Forms"   >    
  <forms   loginUrl="login.aspx"></forms>  
  </authentication>  
   
  FormsAuthentication.RedirectFromLoginPage(UserName,false);  
  Response.Redirect("default.aspx?User="+this.TextBox1.Text.Trim());  
  验证通过后跳转到default.aspx  
  看你是不是由index到login之间出了什么问题。  
  因为你设的是  
  <forms   name=".ASPXUSERDEMO"   loginUrl="index.aspx"   protection="All"   timeout="30"    
   
  path="/">  
                      </forms>  
   
  Top

9 楼web_gus(树欲静而风不止)回复于 2005-01-27 15:54:57 得分 2

用session可以在web.config设置超时时间,txtUsername.Text是什么值?Top

10 楼web_gus(树欲静而风不止)回复于 2005-01-27 15:57:10 得分 0

<location   path="login.aspx">  
  <system.web>  
  <authorization>  
  <allow   users="*"/>  
  </authorization>  
  </system.web>  
  为了访问注册页,web.config的</configuration>结束前加上这个Top

11 楼yb2008(中科商务网--ZKE360.COM)回复于 2005-01-27 16:02:30 得分 0

我的index.aspx源代码:是不是我提交的时候弄错了!  
   
   
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN">  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>管理员登录</title>  
  <link   href="../pt9.css"   rel="stylesheet"   type="text/css">  
  <link   href="../css/pt9.css"   rel="stylesheet"   type="text/css">  
  <link   href="css/pt9.css"   rel="stylesheet"   type="text/css">  
  </head>  
   
  <body   bgcolor="#000000">  
  <form   name="form1"   method="post"   action="login.aspx">  
      <table   width="100%"   height="100%"   border="0"   cellpadding="0"   cellspacing="0">  
          <tr>  
              <td><table   width="771"   border="0"   align="center"   cellpadding="0"   cellspacing="0">  
                      <tr>  
                          <td   width="790"   height="79"   bgcolor="#427DB5"   class="pt9"><img   src="gif/002.gif"   width="771"   height="212"></td>  
                      </tr>  
                      <tr>    
                          <td   height="79"   bgcolor="#427DB5"   class="pt9">   <div   align="center"><font   color="#FFFFFF">用户名:    
                                  <input   name="user"   type="text"   class="box1"   id="user2"   size="12"   maxlength="12">  
                                  密 码:     
                                  <input   name="pwd"   type="password"   class="box1"   id="pwd3"   size="12"   maxlength="12">  
                                  <input   type="submit"   name="Submit"   value="登录">  
                                  <input   name="清楚"   type="reset"   id="清楚3"   value="清除">  
                                  </font>   </div></td>  
                      </tr>  
                      <tr>    
                          <td   height="70"   bgcolor="#EFEFEF"   class="pt9"><div   align="center">东莞市亿声科技有限公司(商务部业务管理系统V1.0)</div></td>  
                      </tr>  
                      <tr>    
                          <td>&nbsp;</td>  
                      </tr>  
                  </table></td>  
          </tr>  
      </table>  
  </form>  
  </body>  
  </html>  
  Top

12 楼clcy(风雨)回复于 2005-01-27 16:06:45 得分 2

顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`Top

13 楼yb2008(中科商务网--ZKE360.COM)回复于 2005-01-27 16:06:55 得分 0

我是提交到login.asp再判断的!Top

14 楼yb2008(中科商务网--ZKE360.COM)回复于 2005-01-27 16:12:36 得分 0

是不是一定要放在一页才可以哦!Top

15 楼sean168(最爱拉布拉多)回复于 2005-01-27 16:17:49 得分 0

<authentication   mode="Forms"   >    
  <forms   loginUrl="login.aspx"></forms>  
  </authentication>  
  设置的是login页  
   
  你就要在  
  login页通过验证才可以跳转啊  
  FormsAuthentication.RedirectFromLoginPage(UserName,false);  
  Response.Redirect("loginok.aspx");  
  Top

16 楼mengshuai1982(Striving)回复于 2005-01-27 16:22:20 得分 2

如果没有通过,就到index.asp  
  ——————————————————  
  当然了,你这样写  
  Response.Write("<script   language=javascript>alert('用户名或密码错误!');</script>");  
  Response.Redirect("index.aspx");  
  根本不会弹出提示框,而是直接转向index.aspx了。  
  去掉Response.Redirect("index.aspx");就对了  
  Top

17 楼yyne(一步一个脚印往上爬)回复于 2005-01-27 16:37:34 得分 2

给一段参考代码  
   
  Web.Config  
  ----------------------------  
  <configuration>  
      <system.web>  
          <authentication   mode="Forms"   />  
          <authorization>  
              <deny   users="?"   />  
          </authorization>  
      </system.web>  
  </configuration>  
   
   
   
  Login.aspx  
  ----------------------------  
  <%@   Page   Language="C#"   %>  
  <%@   Import   Namespace="System.Data"   %>  
  <%@   Import   Namespace="System.Data.SqlClient"   %>  
   
  <script   language="C#"   runat=server>  
   
  void   Page_Load(Object   sender   ,   EventArgs   e)    
  {  
        string     strLinkPath;  
   
      if   (!   IsPostBack   )   {  
          strLinkPath   =   string   .Format(   "Register/Register.aspx?ReturnUrl={0}",   Request.Params[   "ReturnUrl"   ]   );  
          lnkRegister.NavigateUrl   =   string   .Format(   strLinkPath   );  
      }  
  }  
   
  void   Button_Click(   object   s,   EventArgs   e   )   {  
      if   (   IsValid   )   {  
          if   (   DBAuthenticate(   txtUsername.Text,   txtPassword.Text   )   >   0   )  
          {  
              FormsAuthentication.RedirectFromLoginPage(   txtUsername.Text,   false   );  
          }  
      }  
  }  
   
  int   DBAuthenticate(   string     strUsername,   string     strPassword   )   {  
  SqlConnection   conMyData;  
  SqlCommand   cmdSelect;  
  SqlParameter   parmReturnValue;  
  int   intResult;  
   
  conMyData   =   new   SqlConnection(   "Server=localhost;Integrated   Security=SSPI;Database=myData"   );  
  cmdSelect   =   new   SqlCommand(   "DBAuthenticate",   conMyData   );  
  cmdSelect.CommandType   =   CommandType.StoredProcedure;  
  parmReturnValue   =   cmdSelect.Parameters.Add(   "RETURN_VALUE",   SqlDbType.Int   );  
  parmReturnValue.Direction   =   ParameterDirection.ReturnValue;  
  cmdSelect.Parameters.Add(   "@username",   strUsername   );  
  cmdSelect.Parameters.Add(   "@password",   strPassword   );  
  conMyData.Open();  
  cmdSelect.ExecuteNonQuery();  
  intResult   =   System.Convert.ToInt32(cmdSelect.Parameters[   "RETURN_VALUE"   ].Value);  
  conMyData.Close();  
  if   (   intResult   <   0   )  
  {  
  if   (   intResult   ==   -1   )  
  {  
  lblMessage.Text   =   "Username   !   Registered!";  
  }    
  else  
  {  
  lblMessage.Text   =   "Invalid   Password!";  
  }  
  }  
  return   intResult;  
  }  
   
  </Script>  
   
  <html>  
  <head><title>Login.aspx</title></head>  
  <body>  
  <form   Runat="Server">  
   
  <h2>Please   Login:</h2>  
   
  <asp:Label  
      ID="lblMessage"  
      ForeColor="Red"  
      Font-Bold="True"  
      Runat="Server"   />  
  <p>  
  <b>Username:</b>  
  <br/>  
  <asp:TextBox  
      ID="txtUsername"  
      Runat="Server"   />  
  <asp:RequiredFieldValidator  
      ControlToValidate="txtUsername"  
      Text="Required!"  
      Runat="Server"   />  
  <p>  
  <b>Password:</b>  
  <br/>  
  <asp:TextBox  
      ID="txtPassword"  
      Runat="Server"   />  
  <asp:RequiredFieldValidator  
      ControlToValidate="txtPassword"  
      Text="Required!"  
      Runat="Server"   />  
  <p>  
  <asp:Button  
      Text="Login!"  
      OnClick="Button_Click"  
      Runat="Server"   />  
  <hr>  
  <asp:HyperLink  
      ID="lnkRegister"  
      Text="Click   Here   To   Register!"  
      Runat="Server"   />  
   
  </form>  
  </body>  
  </html>  
  Top

18 楼minghui000(沉迷网络游戏)回复于 2005-02-18 16:16:59 得分 0

upTop

相关问题

  • forms验证
  • 关于Forms验证
  • Forms验证问题。
  • Forms验证问题。
  • forms验证问题
  • forms验证 问题!
  • forms验证问题
  • Forms验证问题
  • Forms验证问题?急!!!
  • 关于Forms身份验证~

关键词

得分解答快速导航

  • 帖主:yb2008
  • sean168
  • webserv2
  • sean168
  • web_gus
  • clcy
  • mengshuai1982
  • yyne

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo