【发布时间】:2012-08-29 16:53:47
【问题描述】:
我正在开发 C# MVC 应用程序,但我似乎无法同步身份验证和会话超时。我有一个基本的表单身份验证设置和一些有限的会话值。我将身份验证超时设置为小于会话(28 分钟对 30 分钟),但针对开发 Web 服务器运行,会话将在服务器重新启动时被擦除,但身份验证仍然存在。我假设身份验证存储在一个显然在服务器重启后仍然存在的 cookie 中。
<authentication mode="Forms" >
<forms loginUrl="~/Account/Login" timeout="28" />
</authentication>
<sessionState timeout="30" />
如果 Session 为空,我想我想强制身份验证超时,然后强制登录。
那是我真正想做的吗?如果是这样,我该如何以及在哪里执行此操作?
如果没有,处理这个问题的正确方法是什么?
编辑
为了更多的观点,我还为同一个项目发布了这个问题:Login as... best practices?
【问题讨论】:
-
您可以将会话存储在 SQL 服务器中,这样会话将持续存在。
-
更好的方法是以与会话无关的方式编写您的应用程序,而不是依赖会话来产生影响。
标签: asp.net-mvc forms-authentication session-timeout