【问题标题】:what's differences between "forms timeout", "membership userIsOnlineTimeWindow" and "sessionState timeout"“表单超时”、“会员 userIsOnlineTimeWindow”和“sessionState 超时”有什么区别
【发布时间】:2011-10-17 13:10:19
【问题描述】:

这几行代码有什么区别:

<forms timeout="5" />

<membership userIsOnlineTimeWindow="5" />

<sessionState timeout="5" />

非常感谢。

【问题讨论】:

  • @Javad_Amiry 你是免费的 msdn 工作场所吗?

标签: asp.net web-config asp.net-membership forms-authentication session-state


【解决方案1】:

Forms (FormsAuthention) 用于身份验证,超时时将注销用户。您可以通过将 SlidingExpiration 属性设置为“true”来“防止”超时,如果需要,它将更新用户活动的表单票证(对 asp 的读取请求)。这将使用户在您的网站上“活跃”时保持登录状态。

Membership 用于用户验证,userIsOnlineTimeWindow 可以帮助您跟踪用户活动,因此当它用完时会设置 IsOnline 该用户的属性为“假”。我发现的一件新事情是,它也会更新表单票,而用户 isOnline 设置,主要区别在于它更新本身 自动但仅在其 GetUser()ValidateUser() 方法运行时。

session 超时时,您将丢失在 Session 对象中找到的数据。就是这样。

【讨论】:

  • @AranMulholland 垃圾收集器会清除记忆,在某个时候,中国的某个人会打喷嚏。
  • 仅此而已?太搞笑了:)
【解决方案2】:

注意以下行为:

您设置会话超时 = 10 分钟,表单身份验证超时 = 8 分钟。

用户使用表单身份验证登录您的网站。

会话“时钟”和表单身份验证“时钟”都开始运行。

假设您在 Session 中保留了网站运行所需的一些信息(例如 Session["userData"] = userData;)。

用户空闲 9 分钟。

在 8 分钟时会话超时并清除用户数据。

在用户尝试在网站上执行某些活动的 9 分钟时,您天真地引用 Session["userData"] 来获取他的信息。由于它是空的,他将得到空引用的错误 500。

结论:保持表单身份验证超时时间短于会话超时时间。

【讨论】:

    猜你喜欢
    • 2011-10-18
    • 1970-01-01
    • 2011-01-11
    • 2012-03-31
    • 1970-01-01
    • 2019-06-26
    • 2013-07-22
    • 1970-01-01
    • 2016-04-26
    相关资源
    最近更新 更多