asp.net:インターネットエクスプローラーでの作業中にセッションに入れられたデータは利用可能ですが、オペラではありません
質問
それは本当に奇妙なことです-私はmaxthon(インターネットエクスプローラーベースのブラウザー)で完全に動作するWebサイトを持っています。私はオペラでそれを開始し、一方のサイトのセッション辞書に入れられたデータが他方では利用できないことを発見しました...私はWelcome.aspxを持っていることを意味し、次をクリックすると次のコードが実行されます:
Session["sessionData"] = sessionData;
Response.Redirect("~/Models.aspx");
デバッグ中に、models.aspxでオペラで実行するとセッションが空になることがわかりますが、maxthonで実行するとすべてが正常になります。 誰が何が間違っているのか考えていますか?私は無知だから..これはいくつかのオペラの好みのものですか、それともコード内の何かですか?
編集:Session.IsNewSessionをチェックし、maxthonでの実行中にisnewsessionがfalseに設定されていますが、オペラではtrueです。オペラでは、新しいページに移動すると、どういうわけか新しいセッションが作成されるようです...
解決
最初のヒットでセッションを書き込む場合は、実行する必要があります
Response.Redirect("nextpage.asp", false);
それ以外の場合、応答ストリーム全体を書き込まず、Cookieが書き込まれなかった可能性があります。代わりに、クックレスセッションを選択できます。しかし、その後、セッションハイジャックへのあなたのオープン。
他のヒント
ASP.NETセッションは、ブラウザにCookieとして保存されるキーによって保存されます。 OperaでCookieを受け入れているかどうかを確認します-ASP.NETセッションが正しく機能するために必要です。
OperaでCookieを無効にしている可能性があります。セッションは、識別子をcookieに保存することで機能します(web.configでcookielessとして指定されていない限り)。 brwoserがアクセスを許可しない場合、サーバーはデータを見つけることができません