Asp.net SQL Server会话数据和表单身份验证

Asp.net SQL Server会话数据和表单身份验证,asp.net,sql-server,Asp.net,Sql Server,我必须使用SQL Server来存储会话数据和用于登录的表单身份验证。有些奇怪的事情正在发生,会话即将结束,我丢失了所有会话数据,但forms auth没有将它们踢到登录页面。以下是我为此设置的web配置: <authentication mode="Forms"> <forms loginUrl="Login.aspx" timeout="2880" path="/" protection="All" defaultUrl="Default.asp

我必须使用SQL Server来存储会话数据和用于登录的表单身份验证。有些奇怪的事情正在发生,会话即将结束,我丢失了所有会话数据,但forms auth没有将它们踢到登录页面。以下是我为此设置的web配置:

<authentication mode="Forms">
   <forms loginUrl="Login.aspx" timeout="2880" path="/" protection="All" 
          defaultUrl="Default.aspx"/>
</authentication>
<authorization>
  <deny users="?"/>
  <allow users="*"/>
</authorization>
<sessionState mode="SQLServer" customProvider="AppFabricCacheSessionStoreProvider" 
              sqlConnectionString="" timeout="30" allowCustomSqlDatabase="true">
   <providers>
      <!-- specify the named cache for session data -->
      <add name="AppFabricCacheSessionStoreProvider" 
           type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" 
           cacheName="dev-advisorlynx" sharedId="OrionShared"/>
   </providers>
</sessionState>

表单验证由表单验证cookie管理。会话状态由ASP.NET_会话ID cookie管理。你可能会失去一个,而不是另一个

使用HTTP监视或检查IIS日志来检查cookie流量。无论出于何种原因,它们的范围可能会有所不同(例如,它们可能具有不同的域或路径,或者其中一个域或路径可能即将过期)。

这可能很有用: