1

今朝、私と同僚は、RememberMe = false の場合に認証 Cookie を保存することについて話し合いました。

MVC4、フォーム認証、C#.Net、Visual Studio 2012、IIS 7.5、インプロセス セッション

  1. ユーザーがログインし、(RememberMe = false)、アプリ内のアイテムに移動します。デフォルトのセッション タイムアウトは 30 分に設定されています。

  2. ユーザーが URL をコピーしてブラウザーを閉じた (IE9)

  3. 新しいブラウザー (IE9) を開き、コピーした URL を貼り付けると、UI は loginPage にリダイレクトされます。

ここでは、ステップ 1 で作成されたセッションがまだ有効であると言います。ブラウザを閉じると、ブラウザは AuthCookie を失いました。

彼は、そのセッションもブラウザー セッションに基づいて作成されていると述べています。少し混乱しています。

実際どうだったか教えてください。

下手な英語でごめんなさい

4

2 に答える 2

3

RememberMe = false は、ユーザーに発行された認証 Cookie が永続的でないことを意味します (Cookie の有効期限は「SESSION」に設定されます)。つまり、ブラウザ セッションが終了すると、Cookie は失われます。RememberMe = true は、永続的な Cookie が作成され、複数のブラウザー セッションにわたって保存されることを意味します (Cookie の有効期限は特定の日付に設定され、通常は web.config で構成されます)。

ここでドキュメントを読む

于 2012-12-28T17:08:40.750 に答える
0

InProc であるデフォルトのSession-State Modeを使用していると仮定しています。セッションはSessionIDを生成し、この ID は Cookie に保存されます。この Cookie はユーザーに送信され、その Cookie を使用してリクエストが行われている間、セッションは存続します。ID 自体が固有のブラウザーを識別するため、2 つの異なるブラウザーを同時に使用すると、異なるアカウントで同じ Web サイトにログインできます。ただし、同じブラウザーの異なるタブから異なるアカウントにサインインすることはできません (Web サイトがその機能をサポートするようにサイトを特別にカスタマイズしていない限り)。

ブラウザを閉じると、この Cookie は削除されるため、タイムアウト時間に達するとセッションが終了します。UI ページが表示されるのは、新しい Cookie が同じセッション ID を持っていないためです。つまり、すべての意図と目的において、あなたは新しいユーザーです。

于 2012-12-28T17:08:16.577 に答える