1

私のWeb設定では、コードは

 <sessionState mode="InProc" regenerateExpiredSessionId="true" cookieless="false" timeout="10"  customProvider="DefaultSessionProvider">

および global.asax ファイル

protected void Session_Start(Object sender, EventArgs e)
 {
       Session["init"] = 0;          
 }

protected void Session_End(Object sender, EventArgs e)
 {
         Session.Clear();
 }

問題は、ブラウザとクライアント マシンのインスタンスが同じであっても、セッション タイムアウト後に新しいセッション ID を生成することです。

上記のコードでは、セッション タイムアウト後も同じセッション ID を維持しています。助けてください。

4

1 に答える 1

2

セッション ID は、ASP.NET セッション ID Cookie 内に保持されます。Session.Clear() を実行するだけでは不十分です。実際には、応答自体から Cookie を削除する必要があります。

これを行うには、Cookie の有効期限を -1 などの負の値に設定します。

HttpCookie myCookie = new HttpCookie("ASP.NET_SessionId");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
于 2013-09-12T06:17:04.177 に答える