"forms timeout"、"membership userIsOnlineTimeWindow"和"sessionState timeout"有什么区别



这几行代码的区别是什么?

<forms timeout="5" />
<membership userIsOnlineTimeWindow="5" />
<sessionState timeout="5" />

Forms (formsauthentication)用于身份验证,当超时时将注销用户。你可以通过设置SlidingExpiration属性为"true"来"防止"超时,如果需要,它会在用户活动(读请求到asp)时更新表单票。这将保持用户登录,而他是"活跃"在您的网站。

Membership用于用户验证,userIsOnlineTimeWindow是为了帮助您跟踪用户活动,所以当它运行完时,它将为该用户设置IsOnline属性为'false'。我发现的一件新事情是,当users isOnline设置时,也将更新表单票证,主要区别在于自动更新本身,但只有当它的GetUser()ValidateUser()方法运行时。

会话超时时,将丢失在会话对象中找到的数据。

注意以下行为:

设置Session timeout = 10分钟,Forms Authentication timeout = 8分钟。

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

Session "clock"和Forms Authentication "clock"都开始运行。

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

用户空闲9分钟。

8分钟会话超时,用户数据被清除。

在9分钟时,当用户试图在站点上执行一些活动时,您天真地引用会话["userData"]来获取他的信息。因为它是空的,他将得到一个空引用的错误500。

结论:保持表单认证超时小于会话超时

最新更新