ASP.NET - 会话键值对上的 TTL (InProc)

发布于 2024-11-07 11:20:21 字数 165 浏览 0 评论 0原文

是否有认可的方法将 TTL 添加到 ASP.NET InProc 会话状态条目?

示例:

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

Is there a sanctioned method for adding TTL to ASP.NET InProc Session State entries?

Example:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

虚拟世界 2024-11-14 11:20:21

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

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

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

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

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

    Session("PersistMe") = true

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

Out of the box, no there isn't. Individual Session State Key-Value-Pairs do not have any built-in method for adding a TTL or TTE.

Regarding the "global" InProc session state-timeout, it is controlled by a session state wide value configured in your web.config file (the timeout value in the /system.web/sessionState settings).

Additionally, whilst it may look like an attractive proposition to create your own session state provider, you couldn't use the Session property exposed by the page or controller code as this returns a HttpSessionState object. None of the methods, properties or indexers support having an extra parameter to specify individual session value timeouts.

You may consider doing the following:

  • Maintain an active session for each user:

    Session("PersistMe") = true

  • Grab SessionID, and use it to store values in the ASP.NET Cache where you may utilize a TTL value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文