簡體   English   中英

IIS 7中的會話超時如何工作?

[英]How does the session timeout work in IIS 7?

在web.config中,我將sessionState中的超時設置為20分鍾。 根據MSDN,此超時指定會話在被放棄之前可以空閑的分鍾數。 在IIS 7中,DefaultWebSite->會話狀態 - > Cookie設置 - >超時自動填充web.config中設置的超時值,在我的情況下是20分鍾。 此外,應用程序池 - > DefaultAppPool->高級設置 - > idleTimeout,我將其設置為10分鍾。

然后我做了兩個測試:第一次測試:我在下午3:45登錄我的網絡應用程序,閑置10分鍾。 下午3:55,我試圖使用我的應用程序,我被踢了出去。 我認為idleTimeout正在發揮作用。

第二次測試:我在下午4:00登錄我的網絡應用程序,在下午4:05,下午4:10,下午4:15和下午4:20使用應用程序。 我預計會在下午4:20被踢出局。 但我不是。 我認為IIS 7中的會話狀態超時(20分鍾)是Web Agent挑戰用戶重新進行身份驗證之前用戶會話可以處於活動狀態的最長時間。 顯然,從這個測試,它不是。 任何人都可以向我解釋一下嗎? 另外,我如何設置上述情況的超時?

會話超時是一個滑動超時,每次用戶訪問服務器時都會將其重置為配置的值。

如果在這段時間內沒有向您的應用程序發出請求,則應用程序空閑超時將啟動。

因此通常的情況是:

Time  | User A       | User B       | Session States
------+--------------+--------------+-------------------------------------------
12:00 | Visits Page1 |              | A: New Session, Time-out: 20 minutes
12:02 | Visits Page2 |              | A: Time-out reset: 20 minutes
12:10 |              | Visits Page1 | A: Time-out: 12 min; B: New: 20 minutes
12:15 |              | Visits Page2 | A: Time-out: 07 min; B: Time-out: 20 min
12:22 |              |              | A: times out; B: 13 min remaining
12:32 |              |              | Application Shuts Down (Idle time reached)
12:35 | Visits Page3 |              | A: New Session Starts

如果用戶A在12:22之后返回該站點,他們將有一個全新的會話,並且您之前存儲的任何值都將丟失。

確保會話在應用程序重新啟動時持續存在的唯一方法是配置SessionState服務或SQL會話狀態,並確保已配置machine.key,以便每次服務器重新啟動時都不是AutoGenerated。

如果您使用標准ASP.NET機制進行身份驗證,那么ASP.NET將向每個用戶發出兩個cookie:

  1. 身份驗證令牌:由身份驗證超時設置控制,允許用戶自動登錄到您的站點,如果cookie未過期,可以修復或滑動,默認為30分鍾,這意味着他們的身份驗證令牌可以應對比他們的會議更長的“閑置”時期。
  2. 會話令牌:由會話超時設置控制,允許您的應用程序在訪問的生命周期內存儲和訪問每個用戶的值。

這兩個cookie都使用MachineKey加密 - 因此,如果您的應用程序回收並生成新密鑰,則這些令牌都不能被解密,要求用戶登錄並創建新會話。


回應評論:

  1. 20分鍾的會話超時與您使用Session.Add(string, object)方法放置在用戶會話對象( HttpSessionState )中的項目有關。
  2. 那要看。 如果您已正確配置machine.key ,則身份驗證令牌仍然有效,如果您的會話不再是“InProc”,則這些會話也將在應用程序重新啟動時保持不變並且仍然可讀 - 請參閱上面的說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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