[英]how to increase session timeout over 1 hour
我想允許用戶將閑置超時時間設置為1小時以上。 我在web.config中配置:
<authentication mode="Forms">
<forms name="MYWEBAPP.ASPXAUTH" loginUrl="~/Welkom.aspx" protection="All"
timeout="181" slidingExpiration="true" path="/"/>
</authentication>
應用程序池具有高級設置:
Idle Time-out (minutes): 181
在登錄代碼中,我配置了票證和cookie:
FormsAuthenticationTicket ticket = new ...
ticket.expiration = DateTime.Now.AddMinutes(180);
...
cookie.Expires = ticket.Expiration.AddMinutes(5);
Response.Cookies.Add(cookie);
ticket.expiration
頁在每個網頁的頁腳中打印ticket.expiration
,以便我可以查看內部發生的情況。
眾所周知, sliding expiration
意味着超時值僅在經過一半的超時時間后才通過GET請求遞增。 我測試如下:
登錄時,我在頁腳中看到了3小時的過期時間。
我偶爾會在網站上做一些事情,但是到期時間不會改變。
如果我在到期前不到90分鍾的時間內執行某項操作,則到期時間將從那一刻起更新為3個小時。
但是,如果等待時間超過60分鍾,然后再執行一些操作,而到期時間仍提前一個多小時,我將獲得登錄頁面。
有人知道如何解決此問題嗎?
要配置會話不活動超時,有四個設置。 在我的問題中,我提到了三個設置, 即使在進行了所有可能的設置后,asp.net 2.0和IIS 7中的超時和自動注銷也提到了第四個設置:Web.config中的SessionState參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.