1

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

当用户进入我的 web application 时,它会得到一个带有用户名密码的登录屏幕,我会进行 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 过期时,对于这两种情况,我仍然得到“true”。

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

4

0 回答 0