“forms timeout”,“membership userIsOnlineTimeWindow”和“sessionState timeout”之间有什么区别

时间:2011-08-01 15:13:01

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

这些代码行之间有什么区别:

<forms timeout="5" />

<membership userIsOnlineTimeWindow="5" />

<sessionState timeout="5" />

非常感谢。

2 个答案:

答案 0 :(得分:12)

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

Membership 用于用户验证, userIsOnlineTimeWindow 可帮助您跟踪用户活动,因此当用完时,它会设置 IsOnline < / strong>该用户的属性为'false'。我发现的一件新事情是,当用户isOnline设置时,还将续订表单票证,主要区别在于续订本身自动但仅在其 GetUser() ValidateUser()方法运行时。

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

答案 1 :(得分:0)

请注意以下行为:

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

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

Session&#34; clock&#34;和表格认证&#34;时钟&#34;开始跑步。

假设您在会话中保留了网站操作所需的一些信息(例如,会话[&#34; userData&#34;] = userData;)。

用户闲置9分钟。

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

当用户尝试在网站上执行某些活动的9分钟时,您会天真地引用会话[&#34; userData&#34;]来获取他的信息。由于它为null,因此将为空引用获取错误500.

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