Compartir a través de


DefaultAuthenticationModule.Authenticate Evento

Definición

Aparece después de que se ha autenticado la solicitud.

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 

Tipo de evento

Ejemplos

En el ejemplo de código siguiente se usa el evento DefaultAuthentication_OnAuthenticate para comprobar si la User propiedad de la instancia actual HttpContext es null. Si la User propiedad es null, el ejemplo establece la User propiedad de la instancia actual HttpContext en un GenericPrincipal objeto donde el GenericPrincipalIdentity del objeto es un GenericIdentity con un Name valor de "default".

Nota

El evento DefaultAuthentication_OnAuthenticate se genera antes del AuthorizeRequest evento . Como resultado, si establece la User propiedad de la instancia actual HttpContext en una identidad personalizada, puede afectar al comportamiento de la aplicación. Por ejemplo, si usa la FormsAuthentication clase y especifica <deny users="?" /> en la sección de configuración de autorización para asegurarse de que solo los usuarios autenticados tienen acceso al sitio, este ejemplo hará que se omita el elemento deny , ya que el usuario tendrá un nombre, que es "predeterminado". En su lugar, debe especificar <deny users="default" /> para asegurarse de que solo los usuarios autenticados puedan acceder al sitio.

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

Comentarios

El Authenticate evento se genera después del AuthenticateRequest evento . Se usa para asegurarse de que la User propiedad de la instancia actual HttpContext se rellena con un IPrincipal objeto .

Puede acceder al Authenticate evento de la DefaultAuthenticationModule clase especificando una subrutina denominada DefaultAuthentication_OnAuthenticate en el archivo Global.asax de la aplicación.

Puede usar la Context propiedad del DefaultAuthenticationEventArgs objeto en el evento DefaultAuthentication_OnAuthenticate para establecer la User propiedad de la instancia actual HttpContext en un objeto personalizado IPrincipal . Si no especifica un valor para la User propiedad , establece DefaultAuthenticationModule la User propiedad de la HttpContext instancia en un GenericPrincipal objeto que no contiene información de usuario.

El evento DefaultAuthentication_OnAuthenticate se genera después del AuthenticateRequest evento y antes del AuthorizeRequest evento . Si tiene una authorization sección que depende del nombre de usuario para denegar o permitir el acceso a la aplicación, modificar la User propiedad de la instancia actual HttpContext puede afectar al comportamiento de la aplicación. Asegúrese de que el nombre de usuario que estableció durante el evento DefaultAuthentication_OnAuthenticate se tiene en cuenta al especificar la sección de autorización en la configuración.

Nota

Si la aplicación web se ejecuta en IIS 7.0 en modo integrado, no se genera el Authenticate evento de DefaultAuthenticationModule . Si el mode atributo del elemento de configuración de autenticación se establece en "None" y la aplicación se suscribe al Authenticate evento, se genera un PlatformNotSupportedException error. En este escenario, para recibir una notificación de autenticación, suscríbase al AuthenticateRequest evento de la HttpApplication instancia. Para obtener más información sobre los problemas de compatibilidad en el modo integrado, vea Mover una aplicación de ASP.NET de IIS 6.0 a IIS 7.0.

Se aplica a

Consulte también