【发布时间】:2009-08-05 01:42:49
【问题描述】:
首先,我创建了一个登录页面,该页面向会话中添加了一个键值对,并验证了该页面上会话持有该对。 接下来,我尝试转到另一个页面,在会话中查找该对,但它不存在。我已将会话的超时设置为 15000,因此它不会超时。 我目前使用一个静态类来查看会话,HttpContext.Current.Session。 每个 Page 调用这个静态类来查看会话,但每次会话密钥计数 = 0 时,除了在登录页面上的对之后。
public static class UserAuthenticationManager
{
public static bool IsAuthenticated()
{
UserAuthenticationTicket ticket = ((UserAuthenticationTicket)HttpContext.Current.Session[DefinesPL.UserTicketSessionName]);
string redirectUrl = String.Format(DefinesPL.LoginPage);
if (ticket != null)
{
if (ticket.IsExpired())
{
HttpContext.Current.Session.Abandon();
HttpContext.Current.Response.Redirect(redirectUrl, true);
}
}
else
{
HttpContext.Current.Session.Abandon();
HttpContext.Current.Response.Redirect(redirectUrl, true);
}
return true;
}
【问题讨论】:
-
您是否手动检查过浏览器存储的cookie?如果您使用的是 firefox,您可以尝试查看 cookie 插件。例如addons.mozilla.org/en-US/firefox/addon/315
标签: .net asp.net session httpcontext