0

我有一个带有以下内容的 web.config:

 <system.web>
<customErrors mode="Off"/>

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" name="SIPE_ASPXAUTH">
    <credentials passwordFormat="Clear">
      <user name="user1" password="123456"/>
      <user name="user2" password="123456"/>
      <user name="user3" password="123456"/>
    </credentials>

  </forms>

</authentication>


<authorization>

  <deny users="?"/>
</authorization>
<compilation debug="true"/>

此 web.config 始终将我重定向到以下网址

http://localhost:53077/Login.aspx?ReturnUrl=%2fDefault.aspx

我的起始页是一个 Login.aspx,即使在输入正确的凭据后,它也会将我重定向到上面的 url。

所以这就是我所做的。我取出了 name 中的属性

 <forms loginUrl="Login.aspx">

并保持其他一切不变。它完美地工作。

谁能解释一下原因。我知道这是一个 cookiename,默认是 ASPXAUTH。此 cookie 用于对用户进行身份验证。它也存储在工具中......选项......

设置这个cookiename有什么用。是否允许跨浏览器功能。n 我如何通过在 <forms loginUrl="Login.aspx">

感谢你

4

1 回答 1

0

配置设置似乎没问题,但是您已经在登录页面的代码中编写了一些代码,也用于表单身份验证。检查用户名和密码是否正确后,您必须编写以下代码:

FormsAuthentication.SetAuthCookie(
                 this.TextBox_username.Text.Trim(), flase);

         FormsAuthenticationTicket ticket1 = 
            new FormsAuthenticationTicket(
                 1,                                   // version
                 this.TextBox_username.Text.Trim(),   // get username  from the form
                 DateTime.Now,                        // issue time is now
                 DateTime.Now.AddMinutes(10),         // expires in 10 minutes
                 false,      // cookie is not persistent
                 "HR"                              // role assignment is stored
                 // in userData
                 );
          HttpCookie cookie1 = new HttpCookie(
            FormsAuthentication.FormsCookieName, 
            FormsAuthentication.Encrypt(ticket1) );
          Response.Cookies.Add(cookie1);

有关表单身份验证的更多详细信息,请单击此处

于 2012-11-28T06:19:09.017 回答