サイトのページを切り替えると、ASP.NET_SessionId が失われます。この問題は、Chrome/Firefox/Safari で発生します。IE では発生しません。かなり奇妙です...これが私のシナリオです。
私のサイトには、ブラウザに www.example.org または example.org と入力することでアクセスできます (これは重要な情報です)。
example.orgに入ります。ホームページから自分のサイトにログインします (注: ASP.NET フォーム認証は使用していません)。デフォルトのユーザー ページ (userpage.aspx など) に移動します。このページから をクリックする<a>
と、サイトの別のページに移動します。<a>
リンクは完全修飾されています (例: http://www.example.org/page2.aspx )。新しいページに移動すると、セッションが失われます。
そこで、Fiddler を実行して問題を発見しようとしました。私が見つけたものは興味深いものでした。Request Header タグのRefererがページ間で失われていました。
手順は次のとおりです。
- example.org にアクセスします。
- example.org にログインします。
- userpage.aspx にリダイレクトされます。リファラーはhttp://example.orgです。ASP.NET_SessionId が設定されています。
<a>
(例: http://www.example.org/page2.aspx )をクリックします。ページがレンダリングされた後、ASP.NET_SessionId は失われます。
失われた ASP.NET_SessionId は、Chrome/Firefox/Safari で一貫して失われます。これは IE では発生しません。
example.org を www.example.org に置き換えて上記の手順を繰り返すと、ASP.NET_SessionId は失われません。毎回正しく動作します。
この動作について何か考えはありますか?