ASP.NET - 会话密钥值对的TTL(InProc)

时间:2011-05-16 22:38:13

标签: asp.net asp.net-4.0

是否存在将TTL添加到ASP.NET InProc会话状态条目的受制裁方法?

示例:

Session("First", 60) = "John"
Session("Adams", 500) = "Adams"

1 个答案:

答案 0 :(得分:2)

开箱即用,没有。单个会话状态键值对没有任何内置方法来添加TTL或TTE。

关于“全局”InProc会话状态超时,它由web.config文件中配置的会话状态宽值(timeout设置中的/system.web/sessionState值)控制。

此外,虽然创建自己的会话状态提供程序可能看起来很有吸引力,但是您无法使用页面或控制器代码公开的Session属性,因为它会返回HttpSessionState个对象。没有任何方法,属性或索引器支持使用额外的参数来指定单个会话值超时。

您可以考虑执行以下操作:

  • 为每个用户维护一个活动会话:

    会话(“PersistMe”)= true

  • 抓取SessionID,并使用它在ASP.NET Cache中存储值,您可以在其中使用TTL值。