假設我用這樣的事情在web.config在使用窗體身份驗證「slidingExpiration」
<authentication mode="Forms">
<forms
loginUrl ="~/HomeLogin.aspx"
cookieless= "AutoDetect"
slidingExpiration="true"
timeout="10"
protection ="All"
/>
</authentication>
如果slidingExpiration設置爲true(默認設置),每次FormsAuthenticationModule對用戶進行認證,它更新故障單的過期時間。如果設置爲false,則每次請求都不更新到期時間,從而導致該故障單在第一次創建故障單時過期的時間超過了過去的幾分鐘。
注意: 存儲在身份驗證票證中的到期日期是絕對日期和時間值,如2008年8月2日上午11:34。而且,日期和時間是相對於Web服務器的本地時間。這個設計決定可以在夏令時(DST)周圍產生一些有趣的副作用,即當美國時鐘提前一小時(假設Web服務器託管在觀察夏令時的地區)時。考慮一下在DST開始時(即凌晨2:00)的時間到期30分鐘的ASP.NET網站會發生什麼情況。想象一下,訪客在2008年3月11日凌晨1:55登錄該網站。這將生成一個表單身份驗證票證,該票證將於2008年3月11日凌晨2:25(將來30分鐘)過期。然而,凌晨2點左右,由於夏令時,時鐘跳到凌晨3點。當用戶在登錄後6分鐘(在凌晨3點01分)加載新頁面時,FormsAuthenticationModule指出該票證已過期並將用戶重定向到登錄頁面。
這是一個可能導致問題的例子。任何人都可以指出這種方法的缺點。我有興趣瞭解它。
謝謝
您是否在問'slidingExpiration =「true」'的缺點或缺點? – Abel 2012-04-12 10:50:00
@Abel當它爲真 – freebird 2012-04-12 10:50:57