フォーム認証の制御フロー
更新 : 2007 年 11 月
ASP.NET フォーム認証の制御フローを次の表に示します。
ブラウザと HTTP の操作 |
サーバーの応答 |
---|---|
保護されているリソースをサーバーに要求します。HTTP の操作 :
|
認証 Cookie がない場合は、資格情報を収集するために、要求をログオン ページにリダイレクトします。最初に要求されたページについての情報は、RETURNURL をキーとして、クエリ文字列内に挿入されます。サーバー HTTP の応答 :
|
ログオン ページにリダイレクトされます。HTTP の操作 :
|
ログオン ページを返します。セキュリティを確保するために、ログオン ページには SSL (Secure Sockets Layer) を使用してユーザーの資格情報をクリア テキストで送信しないようにすることをお勧めします。サーバー HTTP の応答 :
|
ユーザーがログオン ページに資格情報を入力した後にページを送信します。HTTP の操作 :
|
ユーザーの資格情報を検証し、資格情報が認証された場合は、QueryString に RETURNURL 変数として指定されている元の URL にブラウザをリダイレクトします。既定では、認証チケットは Cookie として発行されます。
メモ :
CookieMode プロパティを使用すると、Cookie の代わりに URL に認証チケットを含めるように指定できます。
サーバー HTTP の応答 :
|
リダイレクトされ、最初のリソースを再び要求します。HTTP の操作 :
|
ユーザーが承認された場合は、アクセス権と認証チケットを含む Cookie を付与します。これ以降の同じブラウザ セッションでの要求は、モジュールがこの Cookie を検査するときに認証されます。将来のセッションでも使用できる永続的な Cookie を作成できますが、Cookie は有効期限が切れると使用できなくなります。サーバー HTTP の応答 :
Cookie のパスは / に設定されます。Cookie 名は大文字と小文字が区別されるため、これによって、サイト上の URL の大文字/小文字の不一致の問題を回避できます。たとえば、/SavingsPlan と設定されているパスが、リンクでは /savingsplan となっていた場合、ブラウザはこの Cookie を送信しないため、ユーザーの再認証が必要になります。 |