“表单超时”、“成员资格用户在线时间窗口”和“会话状态超时”有什么区别?

13

这些代码有什么不同:

<forms timeout="5" />

<membership userIsOnlineTimeWindow="5" />

<sessionState timeout="5" />

非常感谢。


@Javad_Amiry,你是在使用 MSDN 免费工作场所吗? - Aran Mulholland
2个回答

13

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

Membership用于用户验证, userIsOnlineTimeWindow 可帮助您跟踪用户活动,因此当其耗尽时,它将为该用户将 IsOnline 属性设置为“false”。我发现的一件新事是,当用户在线时,它会同时更新表单票证,主要区别是它不会自动地更新自己,只有在运行其 GetUser()或 ValidateUser()方法时才进行更新。

会话超时时,您将丢失Session对象中的数据。就是这样。


3
垃圾收集器将清理内存,有一天中国的某个人会打喷嚏。 - Bizniztime
这就是全部了吗?太有趣了 :) - Aran Mulholland

1
请注意以下行为:
您将Session超时设置为10分钟,Forms身份验证超时设置为8分钟。
用户使用Forms身份验证登录到您的站点。
Session“时钟”和Forms身份验证“时钟”都开始运行。
假设您在Session中保存了一些站点操作所需的信息(例如,Session [“userData”] = userData;)。
用户闲置了9分钟。
在8分钟时,会话超时并清除用户的数据。
在9分钟时,当用户尝试在站点上执行某些活动时,您天真地引用Session [“userData”]以获取他的信息。由于它为空,他将获得空引用的错误500。
结论:保持Forms身份验证超时时间比会话超时时间短。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接