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