2013-04-12 39 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.确保会话处于活动状态并且未在代码中被杀死。