2012-09-11 160 views
4

我在asp.net.i中使用表單身份驗證已將身份驗證Cookie過期設置爲60分鐘,會話時間超過60分鐘在web.config中超時在web.config中爲60分鐘,並在IIS中的空閒時間來60分鐘身份驗證在asp.net中的Cookie

<authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login.aspx" timeout="60" defaultUrl="~/Landing.aspx" slidingExpiration="true"/> 
    </authentication> 
    <system.web> 
     <sessionState timeout="60" mode="InProc"/> 
    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
    2,        // Version number 
    txtUserName.Text.Trim(),  // Username 
    DateTime.Now,     // Issue date 
    DateTime.Now.AddMinutes(60), // Expiration date 
    false,       // Persistent? 
    userData     // User data 
    ); 

,因爲我使用窗體身份驗證,如果用戶空閒60分鐘用戶應重定向60後到登錄頁面mins.but我需要知道什麼如果用戶沒有閒置60分鐘,會發生。驗證cookie是否會過期?儘管用戶仍然通過身份驗證?

編輯

我錯過了一兩件事,我已經在IIS中設置應用程序池標識爲網絡服務

回答

2

是用戶仍然會過期,他/她將不會被授權使用服務器上的可用資源。您正在使用Forms Authentication Cookie,它是FormsAuthentication標籤的簡單容器。

因爲您的票證是非持久性的,這會導致您的「Cookie」過期,從而將用戶重定向到登錄頁面。注意這隻處理「身份驗證」,不要與Session混淆。

您可能會話「過期」,但用戶仍然通過身份驗證,這可能是一個問題。

因此,要直接回答您的問題,「用戶身份驗證」將過期,他/她將被重定向到登錄頁面,在登錄頁面上將創建一個新的cookie,這將創建另一個「會話」對象。加班前一次會過期。

建議:使「Web.config」中的窗體超時時間小於Session。不要在任何與Auth /安全相關的Session上建立依賴關係;這兩個是不同的容器,應該這樣對待。