ASP.Net MVC:会话持续时间?

时间:2012-02-09 15:10:00

标签: asp.net asp.net-mvc session forms-authentication session-cookies

由于业务逻辑复杂,我必须自己实现身份验证。我将身份验证存储在:

  

FormsAuthentication.SetAuthCookie(标识符,FALSE);

False表示我们不想拥有持久性cookie

我还要在会话中存储一些信息(用户必须输入一个用于登录的信息,指示他想要访问哪组数据)。

我通过模型绑定器存储这些数据。

大部分时间都很好。但是在不活动期后的某个时间,我们仍然会被记录,但我们没有任何数据在会话中。

我希望我的会话持续时间与登录会话相同,以避免这种“我已经登录但我在会话中丢失了一些数据”。

我不需要/想要持久连接。

我应该如何继续使用这个系统?

2 个答案:

答案 0 :(得分:1)

我相信FormsAuthentication使用自己的超时。您可以相应地配置web.config:

<system.web>
    <authentication mode="Forms">
          <forms timeout="50"/>
    </authentication>

    <sessionState timeout="50"  />
</system.web>

答案 1 :(得分:0)

实际上,IIS应用程序池中默认存在会话超时,因此,为了避免此问题:

  1. 继续使用IIS管理器
  2. 转到ServerName / Application Pools选项卡
  3. 右键单击相关的应用程序池
  4. 点击高级设置,
  5. 在“过程模型”部分中,在“空闲超时”中设置更高的值(这是几分钟
  6. 点击OK
  7. 重新启动应用程序池
  8. 对我来说,这个+ Yannis配置(为表单超时和会话状态超时设置相同的值)有效。