在cookie过期后,ASP.Net IsAuthenticated返回true

时间:2013-07-08 12:30:17

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

我有一个asp.net单页面Web应用程序。

当用户输入我的Web应用程序时,它会获得一个带有用户名密码的登录屏幕,我会进行ajax调用以进行身份​​验证:

        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
                    "CookieName",
                    DateTime.Now,
                    DateTime.Now.AddMinutes(1),
                    true,
                    "data",
                    FormsAuthentication.FormsCookiePath);

        // Encrypt the ticket.
        string encTicket = FormsAuthentication.Encrypt(ticket);

        HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

在任何ajax调用之前,我检查请求和用户是否经过身份验证:

if (HttpContext.Current.Request.IsAuthenticated)
{
    if (HttpContext.Current.User.Identity.IsAuthenticated)
    {
             //do something
    }
}

但是当cookie过期时,我仍然对这两个条件都“真实”。

为什么呢?是因为我打了ajax电话吗? 我应该在每次通话之前检查cookie是否过期而不是使用IsAuthenticated吗?

0 个答案:

没有答案