Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

DefaultAuthenticationEventHandler (Delegado)

Representa el método que controla el evento DefaultAuthentication_OnAuthenticate de DefaultAuthenticationModule.

Espacio de nombres:  System.Web.Security
Ensamblado:  System.Web (en System.Web.dll)
public delegate void DefaultAuthenticationEventHandler(
	Object sender,
	DefaultAuthenticationEventArgs e
)

Parámetros

sender
Tipo: System.Object
Origen del evento.
e
Tipo: System.Web.Security.DefaultAuthenticationEventArgs
Objeto DefaultAuthenticationEventArgs que contiene los datos de eventos.

El delegado DefaultAuthenticationEventHandler se define para el evento Authenticate de la clase DefaultAuthenticationModule. Puede tener acceso al evento Authenticate de la clase DefaultAuthenticationModule especificando una subrutina denominada DefaultAuthentication_OnAuthenticate en el archivo Global.asax de la aplicación ASP.NET. El evento Authenticate se provoca después del evento AuthenticateRequest y se utiliza para garantizar que la propiedad User del objeto HttpContext actual se rellena con un objeto IPrincipal.

Puede utilizar la propiedad Context del objeto DefaultAuthenticationEventArgs que se proporciona al evento DefaultAuthentication_OnAuthenticate para establecer la propiedad User del objeto HttpContext actual en un objeto IPrincipal personalizado. Si no se especifica un valor para la propiedad User del objeto HttpContext proporcionado durante el procesamiento del evento DefaultAuthentication_OnAuthenticate, DefaultAuthenticationModule establece la propiedad User de HttpContext en un objeto GenericPrincipal que no contiene ninguna información sobre el usuario.

El evento DefaultAuthentication_OnAuthenticate se inicia después del evento AuthenticateRequest y antes del evento AuthorizeRequest. Si tiene una sección authorization que depende del nombre de usuario para denegar o permitir el acceso a la aplicación, la modificación de la propiedad User del objeto HttpContext actual puede afectar al comportamiento de la aplicación. Asegúrese de que se considera el nombre de usuario que establece durante el evento DefaultAuthentication_OnAuthenticate cuando especifica la sección authorization en la configuración.

El ejemplo de código siguiente utiliza el evento DefaultAuthentication_OnAuthenticate para probar si la propiedad User del objeto HttpContext actual es null. Si la propiedad es null, el ejemplo establece la propiedad User del objeto HttpContext actual en un objeto GenericPrincipal donde la propiedad Identity del objeto GenericPrincipal es un objeto GenericIdentity con un valor Name de "predeterminado".

Nota Nota

El evento DefaultAuthentication_OnAuthenticate tiene lugar antes que el evento AuthorizeRequest. Como resultado, si establece la propiedad User del objeto HttpContext actual en una identidad personalizada, puede afectar al comportamiento de la aplicación. Por ejemplo, cuando utiliza la clase FormsAuthentication y desea garantizar que sólo los usuarios autenticados tengan acceso al sitio, si utiliza la sección authorization y especifica <deny users="?" />, este ejemplo hará que se pase por alto el elemento deny, ya que el usuario tendrá un nombre que es "predeterminado". En su lugar especificaría <deny users="default" /> para garantizar que sólo los usuarios autenticados pueden tener acceso 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]);
}


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar