다음을 통해 공유


DefaultAuthenticationModule.Authenticate 이벤트

정의

요청이 인증된 후에 발생합니다.

public:
 event System::Web::Security::DefaultAuthenticationEventHandler ^ Authenticate;
public event System.Web.Security.DefaultAuthenticationEventHandler Authenticate;
member this.Authenticate : System.Web.Security.DefaultAuthenticationEventHandler 
Public Custom Event Authenticate As DefaultAuthenticationEventHandler 

이벤트 유형

예제

다음 코드 예제에서는 DefaultAuthentication_OnAuthenticate 이벤트를 사용하여 현재 HttpContext 인스턴스의 속성이 있는지 여부를 User 테스트합니다null. 속성이 User 면 샘플은 null현재 HttpContext 인스턴스 GenericPrincipal 의 속성을 개체의 GenericPrincipal 값이 Identity "default"인 개체 GenericIdentityName 설정합니다User.

메모

DefaultAuthentication_OnAuthenticate 이벤트는 이벤트 전에 발생합니다AuthorizeRequest. 따라서 현재 HttpContext 인스턴스의 속성을 사용자 지정 ID로 설정 User 하면 애플리케이션의 동작에 영향을 줄 수 있습니다. 예를 들어 클래스를 FormsAuthentication 사용하고 인증된 사용자만 사이트에 액세스할 수 있도록 권한 부여 구성 섹션에서 지정 <deny users="?" /> 하는 경우 이 샘플에서는 사용자가 "기본값"인 이름을 가지기 때문에 거부 요소가 무시됩니다. 대신 인증된 사용자만 사이트에 액세스할 수 있도록 지정 <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

설명

이벤트는 Authenticate 이벤트 후에 발생합니다 AuthenticateRequest . 현재 HttpContext 인스턴스의 속성이 User 개체로 IPrincipal 채워지도록 하는 데 사용됩니다.

애플리케이션의 DefaultAuthenticationModule Global.asax 파일에서 DefaultAuthentication_OnAuthenticate이라는 서브루틴을 지정하여 클래스의 이벤트에 액세스할 Authenticate 수 있습니다.

DefaultAuthentication_OnAuthenticate 이벤트에서 개체의 DefaultAuthenticationEventArgs 속성을 사용하여 Context 현재 HttpContext 인스턴스의 속성을 사용자 지정 IPrincipal 개체로 설정할 User 수 있습니다. 속성 DefaultAuthenticationModule 값을 User 지정하지 않으면 인스턴스의 HttpContext 속성을 사용자 정보가 없는 개체로 GenericPrincipal 설정합니다User.

DefaultAuthentication_OnAuthenticate 이벤트는 이벤트 후 AuthenticateRequest 및 이벤트 전에 발생합니다AuthorizeRequest. 애플리케이션에 대한 액세스를 거부하거나 허용할 사용자 이름에 따라 섹션이 있는 경우 authorization 현재 HttpContext 인스턴스의 속성을 수정하면 User 애플리케이션의 동작에 영향을 줄 수 있습니다. 구성에서 권한 부여 섹션을 지정할 때 DefaultAuthentication_OnAuthenticate 이벤트 중에 설정한 사용자 이름을 고려해야 합니다.

메모

웹 애플리케이션이 통합 모드 Authenticate 에서 IIS 7.0에서 실행되는 경우 해당 이벤트가 DefaultAuthenticationModule 발생하지 않습니다. mode 인증 구성 요소의 특성이 "None"으로 설정되고 애플리케이션이 이벤트를 PlatformNotSupportedException 구독하는 Authenticate 경우 오류가 발생합니다. 이 시나리오에서 인증 알림을 받으려면 인스턴스의 AuthenticateRequest 이벤트를 구독합니다 HttpApplication . 통합 모드의 호환성 문제에 대한 자세한 내용은 IIS 6.0에서 IIS 7.0으로 ASP.NET 애플리케이션 이동을 참조하세요.

적용 대상

추가 정보