DefaultAuthenticationEventArgs コンストラクタ
アセンブリ: System.Web (system.web.dll 内)
構文
解説
DefaultAuthenticationModule オブジェクトは、現在の HttpContext を使用して DefaultAuthenticationEventArgs オブジェクトを生成し、それを DefaultAuthentication_OnAuthenticate イベントに渡します。
DefaultAuthentication_OnAuthenticate イベントに渡した DefaultAuthenticationEventArgs オブジェクトの Context プロパティを使用して、現在の HttpContext の User プロパティを、カスタムの IPrincipal オブジェクトに設定できます。Context プロパティによって参照される HttpContext の User プロパティに値を指定しない場合、DefaultAuthenticationModule は、HttpContext の User プロパティに、ユーザー情報が含まれない GenericPrincipal オブジェクトを設定します。
DefaultAuthentication_OnAuthenticate イベントは、AuthenticateRequest イベントドが呼び出されてから AuthorizeRequest イベントが呼び出されるまでの間に呼び出されます。authorization セクションにより、アプリケーションへのアクセスの許可または拒否をユーザー名に依存している場合、現在の HttpContext の User プロパティを変更することによりアプリケーションの動作に影響を与えることがあります。構成ファイルの authorization セクションを指定するときには、必ず、DefaultAuthentication_OnAuthenticate イベントで設定されるユーザー名を考慮するようにしてください。
DefaultAuthentication_OnAuthenticate イベントを使用して、現在の HttpContext の User プロパティが null 参照 (Visual Basic では Nothing) かどうかをテストするコード例を次に示します。このプロパティが 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
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- DefaultAuthenticationEventArgs コンストラクタのページへのリンク