如果会话超时,“HttpContext.Current.User.Identity.Name”是否返回null?

时间:2013-12-23 07:52:46

标签: asp.net asp.net-mvc-4

我正在处理Formsauthentication登录功能。

我的会话配置为1分钟,

<sessionState cookieless="false" timeout="1"/>

我的表单身份验证设置

<authentication mode="Forms">      
  <forms cookieless="UseCookies" defaultUrl="~/" loginUrl="~/user/signin" name="PMPLUSWeb" timeout="21680" slidingExpiration="true"  />
</authentication>

我将表单身份验证设置为

FormsAuthentication.RedirectFromLoginPage(userID, user.RememberMe);

所以当我访问&#34; HttpContext.Current.User.Identity.Name&#34;我得到了用户ID。

如果会话超时(1分钟后),我想&#34; HttpContext.Current.User.Identity.Name&#34;也将过期。但价值仍然存在,我仍然在1分钟后获得UserID。这个值存储在哪里?

是否从cookie中读取值并通过请求发送?

1 个答案:

答案 0 :(得分:2)

如果登录Cookie 过期(我在此处避免使用术语"session"),则HttpContext.Current.User将返回null,HttpContext.Current.Request.IsAuthenticated将返回false < / p>

有关如何设置User / IsAuthenticated的详细信息,请查看these two个问题。