なぜこの物件はセッションIDにセッションASP.NET ページ内のオブジェクトはリクエスト間で変更されますか?
次のようなページがあります:
...
<div>
SessionID: <%= SessionID %>
</div>
...
そして、ブラウザに関係なく、F5 キーを押すたびに出力が変化し続けます。
ベストアンサー1
これがまさにその理由だ
Cookie ベースのセッション状態を使用する場合、ASP.NET は、Session オブジェクトが使用されるまでセッション データ用のストレージを割り当てません。その結果、セッション オブジェクトがアクセスされるまで、ページ要求ごとに新しいセッション ID が生成されます。アプリケーションでセッション全体にわたって静的なセッション ID が必要な場合は、アプリケーションの Global.asax ファイルに Session_Start メソッドを実装し、Session オブジェクトにデータを格納してセッション ID を修正するか、アプリケーションの別の部分のコードを使用して Session オブジェクトにデータを明示的に格納することができます。
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx
つまり、バックエンドでセッションオブジェクトにアクセスしない限り、リクエストごとに新しいセッションIDが生成されます。
編集
このコードは Global.asax ファイルに追加する必要があります。セッション オブジェクトにエントリが追加され、期限が切れるまでセッションが固定されます。
protected void Session_Start(Object sender, EventArgs e)
{
Session["init"] = 0;
}