【问题标题】:Session that never expires like on stackoverflow.com, unless the user clicks logout会话永不过期,就像在 stackoverflow.com 上一样,除非用户单击注销
【发布时间】:2010-07-16 02:57:02
【问题描述】:

我正在构建一个 asp.net mvc 应用程序。 我希望会话永不过期,一旦用户登录,除非用户点击注销。

最好的方法是什么?

我用过

FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);

并将 createPersistentCookie 设置为 true,但我仍然会在一段时间后退出。

【问题讨论】:

    标签: asp.net-mvc session


    【解决方案1】:

    实现滑动过期。将到期时间保留为某个合理的值 - 天、二、周最大值;在每个请求(最简单)或在特定时间间隔更新 cookie。

    【讨论】:

    • 这也可以,而且可能比使用 1 年到期更好
    【解决方案2】:

    FormsAuthentication cookie 使用超时值来确定到期时间。 createPersistentCookie 标志只是告诉 API 设置一个过期值,而不是让 cookie 在浏览器关闭时过期。要防止过期,请增加 web.config 中的表单身份验证超时值。该值以分钟为单位,因此要强制 cookie 持续一年,请使用 525600。

    【讨论】:

    • 嗯,这将占用服务器上的大量内存。有没有其他选择?
    • 嗯?什么会占用大量内存?这是一个单一的 int 值。
    • 这不会占用服务器上的任何内存。 cookie 过期是通过客户端上的 imestamp 完成的。
    • 好的,然后增加表单身份验证超时值,应该足够了。滑动到期和上面哪一个更好,还是无所谓?
    • 我会接受 Franci 的滑动到期建议。它比 1 年的 cookie 稍微安全和可取,IMO
    猜你喜欢
    • 2012-10-24
    • 2018-03-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 2012-04-19
    • 2019-10-11
    相关资源
    最近更新 更多