次の方法で共有


DefaultAuthenticationEventArgs(HttpContext) コンストラクター

定義

DefaultAuthenticationEventArgs クラスの新しいインスタンスを初期化します。

public:
 DefaultAuthenticationEventArgs(System::Web::HttpContext ^ context);
public DefaultAuthenticationEventArgs(System.Web.HttpContext context);
new System.Web.Security.DefaultAuthenticationEventArgs : System.Web.HttpContext -> System.Web.Security.DefaultAuthenticationEventArgs
Public Sub New (context As HttpContext)

パラメーター

context
HttpContext

イベントのコンテキスト。

次のコード例では、DefaultAuthentication_OnAuthenticate イベントを使用して、現在のHttpContextUser プロパティがnullされているかどうかをテストします。 プロパティがnullの場合、現在のHttpContextUser プロパティを、GenericPrincipal オブジェクトのIdentity プロパティが Name プロパティ値が "default" のGenericIdentity オブジェクトであるGenericPrincipal オブジェクトに設定します。

DefaultAuthentication_OnAuthenticate イベントは、AuthorizeRequest イベントの前に発生します。 その結果、現在のHttpContextUser プロパティをカスタム ID に設定すると、アプリケーションの動作に影響する可能性があります。 たとえば、 FormsAuthentication クラスを使用していて、認証されたユーザーのみがサイトにアクセスできるようにする場合は、 authorization セクションを使用して <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

注釈

DefaultAuthenticationModule オブジェクトは、現在のHttpContextを使用してDefaultAuthenticationEventArgs オブジェクトを構築し、DefaultAuthentication_OnAuthenticate イベントに渡します。

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

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

適用対象

こちらもご覧ください