0

私はASP.Netでの開発にかなり慣れていません。これに対する解決策を高低で検索しましたが、役に立ちませんでした。フォーム認証を使用してユーザーを認証しています。ユーザー A でログインすると、現在のセッションを破棄し、新しいセッション Cookie/ID を生成してコンテンツ ページにリダイレクトすると、すべてが計画どおりに機能します。ただし、新しいブラウザー ウィンドウを開いてログイン画面に移動し、新しいセッションを開始すると、ユーザー A の認証 Cookie が自動的にこのセッションに渡され、要求 Cookie コレクションの一部になります。さらに悪いことに、実際にユーザー B としてログインして新しい認証 Cookie を取得し、セッション A のブラウザー ウィンドウを更新すると、ユーザー B の認証 Cookie が表示されます。

なぜこれが起こっているのか分かりません。コード ビハインドで Response.Cache.SetCacheability("no-cache") を具体的に設定しているにもかかわらず、応答ヘッダー コレクションがキャッシュ制御「プライベート」に設定されているため、ブラウザー (IE9) が認証 Cookie をキャッシュしていると考えました。すべてのページに。それから、スレッドの問題である可能性があると考えていました。

なぜこれが起こっているのかについての洞察は大歓迎です、ありがとう。

4

2 に答える 2

1

Chrome や IE などのさまざまなブラウザを試してください。ブラウザーは、新しいウィンドウで開いても同じ Cookie と一時ファイルを共有するためです。gmail.com または live.com で試すと、上記のシナリオが発生します。

于 2013-10-04T04:31:06.987 に答える
0

セッション設定については、web.config ファイルを確認してください。

次のリンクをご覧ください。

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.enablecrossappredirects.aspx

于 2013-10-04T05:01:26.247 に答える