次の方法で共有


DefaultAuthenticationEventHandler 代理人

定義

DefaultAuthenticationModuleDefaultAuthentication_OnAuthenticate イベントを処理するメソッドを表します。

public delegate void DefaultAuthenticationEventHandler(System::Object ^ sender, DefaultAuthenticationEventArgs ^ e);
public delegate void DefaultAuthenticationEventHandler(object sender, DefaultAuthenticationEventArgs e);
type DefaultAuthenticationEventHandler = delegate of obj * DefaultAuthenticationEventArgs -> unit
Public Delegate Sub DefaultAuthenticationEventHandler(sender As Object, e As DefaultAuthenticationEventArgs)

パラメーター

sender
Object

イベントのソース。

e
DefaultAuthenticationEventArgs

イベント データを格納している DefaultAuthenticationEventArgs

次のコード例では、DefaultAuthentication_OnAuthenticate イベントを使用して、現在HttpContextnullの の プロパティが User かどうかをテストします。 プロパティが の場合、サンプルはnull現在HttpContextの の プロパティを オブジェクトにGenericPrincipal設定Userします。ここでIdentity、 オブジェクトの GenericPrincipal の 値は GenericIdentityName "default" です。

注意

DefaultAuthentication_OnAuthenticate イベントは、イベントの前に発生しますAuthorizeRequest。 その結果、現在HttpContextの の プロパティをUserカスタム ID に設定すると、アプリケーションの動作に影響を与える可能性があります。 たとえば、 クラスを使用していて、 セクションを使用FormsAuthenticationauthorizationして を指定<deny users="?" />することで、認証されたユーザーのみがサイトにアクセスできるようにする場合、このサンプルではdeny、ユーザーの名前が "default" であるため、要素は無視されます。 代わりに、 を指定 <deny users="default" /> して、認証されたユーザーのみがサイトにアクセスできるようにします。

public void DefaultAuthentication_OnAuthenticate(object sender,
                                                 DefaultAuthenticationEventArgs args)
{
  if (args.Context.User == null)
    args.Context.User = 
      new System.Security.Principal.GenericPrincipal(
        new System.Security.Principal.GenericIdentity("default"),
        new String[0]);
}
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

注釈

デリゲートは DefaultAuthenticationEventHandler 、 クラスの イベントに Authenticate 対して定義されます DefaultAuthenticationModule 。 クラスのイベントに Authenticate アクセスするには、ASP.NET アプリケーションの DefaultAuthenticationModule Global.asax ファイルで DefaultAuthentication_OnAuthenticate という名前のサブルーチンを指定します。 イベントは Authenticate イベントの後にAuthenticateRequest発生し、現在HttpContextの の プロパティに User オブジェクトが確実に設定されるようにするために使用されますIPrincipal

DefaultAuthentication_OnAuthenticate イベントにContext指定された オブジェクトの DefaultAuthenticationEventArgs プロパティを使用して、現在HttpContextの の プロパティをカスタム IPrincipal オブジェクトに設定Userできます。 DefaultAuthentication_OnAuthenticate イベント中にUser指定された のプロパティのHttpContext値を指定しない場合、 DefaultAuthenticationModule は のプロパティHttpContextUser、ユーザー情報を含まないオブジェクトにGenericPrincipal設定します。

DefaultAuthentication_OnAuthenticate イベントは、イベントの後とイベントのAuthenticateRequest前に発生しますAuthorizeRequest。 アプリケーションへのアクセスをauthorization拒否または許可するユーザー名に依存するセクションがある場合、現在HttpContextの の プロパティを変更するとUser、アプリケーションの動作に影響を与える可能性があります。 構成でセクションを指定するときに、 DefaultAuthentication_OnAuthenticate イベント中に設定したユーザー名が authorization 考慮されていることを確認します。

拡張メソッド

GetMethodInfo(Delegate)

指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。

適用対象