【发布时间】:2013-06-15 18:45:43
【问题描述】:
我们遇到了一个大问题。
我们使用的是比利时 eID(电子身份证,这是一张智能卡)。返回的Claim 供我们的表单身份验证使用。
一切正常,但 10 分钟后(活动或不活动,无所谓),它会自动注销。
这里是我们创建会话的代码片段:
private void CreateSession(ClaimsPrincipal transformedPrincipal)
{
SessionSecurityToken sessionSecurityToken = new SessionSecurityToken(transformedPrincipal, TimeSpan.FromHours(1));
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionSecurityToken);
}
在Web.config中,我们设置了会话超时:
<sessionState cookieless="false" timeout="60" />
在 IIS 服务器上,我们将应用程序池空闲超时设置为 8 小时。
我们还将定期回收的时间间隔设置为 8 小时。
【问题讨论】:
-
请检查您的 web.config 文件以延长会话的生命周期。
-
您确定是会话而不是表单身份验证超时吗?即他们是否必须重新登录?另外,您的 cookie 有效期是多少?
-
@ayilmaz:我们已经尝试过了。没用。
-
@DominicZukiewicz:我不确定哪个超时。他们必须重新登录。我们认为我们的 cookie 过期时间是由
SessionSecurityToken设置的(即 1 小时),这不正确吗?
标签: asp.net session asp.net-mvc-4 forms-authentication