我有一个 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 吗?