2013-04-12 71 views
0

當用戶登錄到我的網站時,cookie在一個月後過期,但它仍會在10-20分鐘後註銷,其不確定性我會爲您提供我用於登錄的代碼餅乾和webconfig認證在不確定時間後自動註銷用戶

這裏有

 Dim cookie As HttpCookie = FormsAuthentication.GetAuthCookie(usernameforcookie, _ 
          keepme.Checked) 
       ' Expires in 30 days, 12 hours and 30 minutes from today. 
       cookie.Expires = DateTime.Now.Add(New TimeSpan(30, 0, 0, 0)) 
       Response.Cookies.Add(cookie) 
       Response.Redirect("Home.aspx") 

這裏的cookie被保存一個月

一個代碼

代碼在登錄第二主網絡配置文件我設置

 <authentication mode="Forms"> 
     <forms loginUrl="Login.aspx" /> 
     </authentication> 
     <authorization> 
     <deny users="?"/> 
     </authorization> 
     <customErrors mode="Off"/> 

另外,我有例如在論壇上文件夾中許多webconfig,因爲這裏的論壇可以被任何人看到,所以我給予認證認證的用戶,下面是在代碼爲論壇

 <authorization> 
    <allow users ="*"/> 
    <deny users="?"/> 
</authorization> 

Web配置現在的問題是.. 用戶被註銷之後的30分鐘時間不定意味着一段時間後10分鐘後,有時會自動的,但在開發服務器工作正常

回答

0

我也面臨類似的問題。經過幾天的研究,我遇到了各種可能導致您面臨的問題的原因。以下是您在進一步挖掘之前要檢查的幾點。
1.在認證塊中提示超時和cookie。
<authentication mode="Forms"> <forms loginUrl="Login.aspx" timeout="43260" cookieless="UseCookies" /> </authentication>
這將確保表單在30天內有效。

2.會話值。

確保您的會話超時值和其他值與表單相似。
<sessionState cookieless="UseCookies" timeout="21630" />(This will also update your session value on IIS)

3.檢查應用程序池回收間隔。當應用程序池被回收時,它會殺死所有會話並形成認證。

4.確保會話處於活動狀態並且未在代碼中被殺死。