Compartir a través de


WSFederationAuthenticationModule.OnAuthenticateRequest Método

Definición

Controla el AuthenticateRequest evento de la canalización de ASP.NET.

protected:
 virtual void OnAuthenticateRequest(System::Object ^ sender, EventArgs ^ args);
protected virtual void OnAuthenticateRequest (object sender, EventArgs args);
abstract member OnAuthenticateRequest : obj * EventArgs -> unit
override this.OnAuthenticateRequest : obj * EventArgs -> unit
Protected Overridable Sub OnAuthenticateRequest (sender As Object, args As EventArgs)

Parámetros

sender
Object

Origen del evento. Este debe ser un objeto HttpApplication.

args
EventArgs

Datos del evento.

Comentarios

El OnAuthenticateRequest método implementa la canalización de procesamiento de solicitudes de WS-Federation. Se agrega al HttpApplication.AuthenticateRequest evento en la canalización de ASP.NET por el InitializeModule método .

El método realiza lo siguiente:

  1. Llama al CanReadSignInResponse(HttpRequestBase) método para determinar si se ha recibido un mensaje de respuesta de inicio de sesión WS-Federation ("wsignin1.0"). Si la respuesta es una solicitud de limpieza de cierre de sesión de WS-Federation ("wsignoutcleanup1.0"), CanReadSignInResponse(HttpRequestBase) procesa el mensaje, finaliza la solicitud y redirige al cliente según los parámetros WS-Federation de la solicitud. Si el mensaje no es una respuesta de inicio de sesión o una solicitud de limpieza de cierre de sesión, el módulo solo devuelve; de lo contrario, realiza los pasos siguientes para procesar la respuesta de inicio de sesión.

  2. Llama al GetSecurityToken(HttpRequestBase) método para deserializar un SecurityToken objeto de la solicitud.

  3. Genera el evento SecurityTokenReceived. Puede cancelar más procesamiento o modificar el token de seguridad recibido en un controlador para este evento. Normalmente, se usa un controlador para modificar las SecurityToken.ValidFrom propiedades o SecurityToken.ValidTo .

  4. Valida el token de seguridad y crea un ClaimsPrincipal objeto a partir de las notificaciones del token de seguridad.

  5. Genera el evento SecurityTokenValidated. Puede cancelar el procesamiento adicional o modificar la entidad de seguridad de notificaciones en un controlador para este evento.

  6. Usa el módulo de autenticación de sesión configurado (SAM) para crear un SessionSecurityToken objeto . (El SAM configurado es el SessionAuthenticationModule objeto devuelto por la FederatedAuthentication.SessionAuthenticationModule propiedad ). El token de sesión se crea mediante la entidad de seguridad de notificaciones devuelta en el paso 5. Las SessionSecurityToken.ValidFrom propiedades y SessionSecurityToken.ValidTo se establecen mediante las ValidFrom propiedades y ValidTo del devuelto en el SecurityToken paso 3 y se validan con la hora actual y la duración del token especificada por o DefaultTokenLifetime la TokenLifetime propiedad del SessionSecurityTokenHandler objeto en la colección del controlador de tokens que WSFAM usa. La duración del token en el controlador de tokens de sesión se puede especificar en la configuración mediante el <elemento sessionTokenRequirement> . Nota: No PersistentSessionLifetime se usa la propiedad del controlador de cookies configurado para sam.

  7. Llama al SetPrincipalAndWriteSessionToken método con el token de sesión para escribir la cookie de sesión. El SetPrincipalAndWriteSessionToken método genera primero el SessionSecurityTokenCreated evento . Puede cambiar las propiedades del token de sesión o cambiar si la cookie debe conservarse en un controlador para este evento. Una vez que se genera el evento, el método escribe la cookie mediante SAM.

    Nota

    El SessionSecurityTokenHandler conjunto en la configuración no se usa para escribir la cookie.

  8. Llama al OnSignedIn método para generar el SignedIn evento.

  9. Llama al método para obtener la GetReturnUrlFromResponse página rp a la que redirigir el cliente. De forma predeterminada, este método lee la dirección URL de retorno del parámetro wctx en la respuesta de inicio de sesión. Para obtener más información sobre cómo WSFAM almacena la dirección URL de retorno, vea el CreateSignInRequest método .

Se aplica a