フォーム認証の制御フロー

更新 : 2007 年 11 月

ASP.NET フォーム認証の制御フローを次の表に示します。

ブラウザと HTTP の操作

サーバーの応答

保護されているリソースをサーバーに要求します。HTTP の操作 :

GET /default.aspx

認証 Cookie がない場合は、資格情報を収集するために、要求をログオン ページにリダイレクトします。最初に要求されたページについての情報は、RETURNURL をキーとして、クエリ文字列内に挿入されます。サーバー HTTP の応答 :

302 Found
Location: http://samples.microsoft.com/logon.aspx?RETURNURL=/default.aspx

ログオン ページにリダイレクトされます。HTTP の操作 :

GET /logon.aspx?RETURNURL=/default.aspx

ログオン ページを返します。セキュリティを確保するために、ログオン ページには SSL (Secure Sockets Layer) を使用してユーザーの資格情報をクリア テキストで送信しないようにすることをお勧めします。サーバー HTTP の応答 :

200 OK

ユーザーがログオン ページに資格情報を入力した後にページを送信します。HTTP の操作 :

POST /logon.aspx?RETURNURL=/default.aspx

ユーザーの資格情報を検証し、資格情報が認証された場合は、QueryString に RETURNURL 変数として指定されている元の URL にブラウザをリダイレクトします。既定では、認証チケットは Cookie として発行されます。

9fw3ef80.alert_note(ja-jp,VS.90).gifメモ :
CookieMode プロパティを使用すると、Cookie の代わりに URL に認証チケットを含めるように指定できます。

サーバー HTTP の応答 :

302 Found
Location: /default.aspx

リダイレクトされ、最初のリソースを再び要求します。HTTP の操作 :

GET /default.aspx

ユーザーが承認された場合は、アクセス権と認証チケットを含む Cookie を付与します。これ以降の同じブラウザ セッションでの要求は、モジュールがこの Cookie を検査するときに認証されます。将来のセッションでも使用できる永続的な Cookie を作成できますが、Cookie は有効期限が切れると使用できなくなります。サーバー HTTP の応答 :

200 OK
Set-Cookie: ASPXTICKET=ABCDEFG12345;Path=/

Cookie のパスは / に設定されます。Cookie 名は大文字と小文字が区別されるため、これによって、サイト上の URL の大文字/小文字の不一致の問題を回避できます。たとえば、/SavingsPlan と設定されているパスが、リンクでは /savingsplan となっていた場合、ブラウザはこの Cookie を送信しないため、ユーザーの再認証が必要になります。

参照

その他の技術情報

ASP.NET Web アプリケーションのセキュリティ

フォーム認証プロバイダ