簡體   English   中英

如何增加超過1小時的會話超時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM