ASP.NET身份验证会话

时间:2010-09-21 05:43:26

标签: c# asp.net authentication

我在一个ASP.NET表单身份验证下有很多站点。他们有混合框架(有些有2.0,有些4.0,但一切都很好)一切正常,但有时,在随机时间(例如两分钟)后,客户端上的会话结束,他必须输入他的密码agian 。为什么?我错过了什么?

以下是我的web.config的一部分:

<authentication mode="Forms" ><forms loginUrl="../web/start_page/start_page.aspx"
    name=".ASPXFORMSAUTH" 
    protection="All"  
    path="/" 
    timeout="60" /></authentication>  
<machineKey
  validationKey="blablabla"
  validation="SHA1" />
<sessionState mode="InProc" stateNetworkTimeout="3600" />

事件查看器显示:

Event code: 4005 
Event message: Forms authentication failed for the request. Reason: The ticket supplied    has expired. 
Event time: 21.09.2010 8:23:26 
Event time (UTC): 21.09.2010 4:23:26 
Event ID: e3a00bef332a4dec9cd1aa078a3d5aa4 
Event sequence: 277 
Event occurrence: 1 
Event detail code: 50202 

1 个答案:

答案 0 :(得分:1)

因为会话超时事件发生所以你需要增加这样的会话时间

<configuration>
  <sessionstate 
      mode="inproc"
      cookieless="false" 
      timeout="20" 
      sqlconnectionstring="data source=127.0.0.1;user id=<user id>;password=<password>"
      server="127.0.0.1" 
      port="42424" 
  />
</configuration>

超时。此选项控制会话被视为有效的时间长度。会话超时是滑动值;在每个请求上,超时时间段设置为当前时间加上超时值

相关问题