1

我必须使用 SQL Server 存储会话数据和用于登录的表单身份验证。会话结束的地方发生了一些奇怪的事情,我丢失了所有会话数据,但表单身份验证并没有将它们踢到登录页面。这是我为此设置的网络配置:

<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>
4

1 回答 1

0

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

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

于 2013-09-23T23:40:45.657 回答