FormsAuthentication无法正常工作。 IsAuthenticated总是返回False

时间:2015-05-22 18:41:45

标签: c# asp.net forms-authentication httpcontext httpcookie

我正在使用ASP.net开发网站,我想实现formbased身份验证。 在web.config中我使用这个

  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="login.aspx" protection="All" path="/" timeout="30" name=".ASPXFORMSDEMO">
      </forms>
    </authentication>
  </system.web>

在登录按钮中单击我使用此功能。

FormsAuthenticationTicket ticket;
                string cookieString;
                HttpCookie cookie;

                ticket = new FormsAuthenticationTicket(1, txtiLoginEmail.Value, DateTime.Now, DateTime.Now.AddMinutes(5), chbRememberMe.Checked, null);
                cookieString = FormsAuthentication.Encrypt(ticket);
                cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieString);


                if (chbRememberMe.Checked)
                {
                    cookie.Expires = ticket.Expiration;
                    cookie.Path = FormsAuthentication.FormsCookiePath;
                }
                Response.Cookies.Add(cookie);

                string strRedirect = "post.aspx";
                Response.Redirect(strRedirect);

我有一个名为post.aspx的页面。我希望此页面仅适用于经过身份验证的用户。所以在post.aspx页面的页面加载事件中,我使用此代码进行检查

  bool isAuthenticated = HttpContext.Current.User != null && HttpContext.Current.User.Identity.IsAuthenticated;

但是上面的代码总是返回false。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我想你忘了把:

FormsAuthentication.SetAuthCookie(/*UserHere*/ ,false);