DefaultAuthenticationModule クラス
アセンブリ: System.Web (system.web.dll 内)


DefaultAuthenticationModule は、現在の HttpContext の User プロパティが各要求の IPrincipal オブジェクトに必ず設定されるようにします。DefaultAuthenticationModule は、AuthenticateRequest イベントの後と AuthorizeRequest イベントの前に User プロパティをチェックします。User プロパティが null 参照 (Visual Basic では Nothing) の場合、DefaultAuthenticationModule は User プロパティに、ユーザー情報が含まれていない GenericPrincipal オブジェクトを設定します。
認証モジュールが StatusCode プロパティを 401 に設定する場合、DefaultAuthenticationModule は特別なアクセス拒否エラー ページを出力します。StatusCode プロパティの値が 200 を超える値に設定された場合、DefaultAuthenticationModule オブジェクトは要求を終了し、現在の要求の完了前に EndRequest イベントをサブスクライブする HTTP モジュールのみが呼び出されます。
DefaultAuthenticationModule は Authenticate イベントを公開します。このイベントにより、現在の HttpContext の User プロパティにカスタム IPrincipal オブジェクトを設定できます。Authenticate イベントには、ASP.NET アプリケーションの Global.asax ファイルに、DefaultAuthentication_OnAuthenticate というイベントを指定することによってアクセスします。

DefaultAuthentication_OnAuthenticate イベントを使用して、現在の HttpContext の User プロパティが null 参照 (Visual Basic では Nothing) かどうかをテストするコード例を次に示します。User プロパティが null 参照 (Visual Basic では Nothing) の場合、サンプル コードでは、現在の HttpContext の User プロパティに GenericPrincipal オブジェクトが設定され、このとき、GenericPrincipal オブジェクトの Identity は Name 値が "default" の GenericIdentity になります。
![]() |
---|
DefaultAuthentication_OnAuthenticate イベントは、AuthorizeRequest イベントの前に発生します。結果、現在の HttpContext の User プロパティにカスタム ID を設定すると、アプリケーションの動作に影響を与える場合があります。たとえば、FormsAuthentication クラスを使用して、認証されたユーザーしかサイトにアクセスできないように authorization 構成セクションに <deny users="?" /> と指定している場合、このサンプル コードでは、ユーザーは "default" という名前を持つため deny 要素が無視されます。この場合、<deny users="default" /> と指定すると、認証されたユーザーのみがサイトにアクセスできるようになります。 |
Public Sub DefaultAuthentication_OnAuthenticate(sender As Object, _ args As DefaultAuthenticationEventArgs) If args.Context.User Is Nothing Then args.Context.User = _ new System.Security.Principal.GenericPrincipal( _ new System.Security.Principal.GenericIdentity("default"), _ new String(0) {}) End If End Sub

System.Web.Security.DefaultAuthenticationModule


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- DefaultAuthenticationModule クラスのページへのリンク