SessionAuthenticationModule SessionAuthenticationModule SessionAuthenticationModule SessionAuthenticationModule Class

Definición

Implementa un módulo de ASP.NET que procesa las cookies de sesión en escenarios de WS-Federation.Implements an ASP.NET module that processes session cookies in WS-Federation scenarios.

public ref class SessionAuthenticationModule : System::IdentityModel::Services::HttpModuleBase
public class SessionAuthenticationModule : System.IdentityModel.Services.HttpModuleBase
type SessionAuthenticationModule = class
    inherit HttpModuleBase
Public Class SessionAuthenticationModule
Inherits HttpModuleBase
Herencia
SessionAuthenticationModuleSessionAuthenticationModuleSessionAuthenticationModuleSessionAuthenticationModule

Ejemplos

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup

    //SUBSCRIBE TO SAM EVENTS
    FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenCreated += new EventHandler<SessionSecurityTokenCreatedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenCreated);
    FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenReceived += new EventHandler<SessionSecurityTokenReceivedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenReceived);
    FederatedAuthentication.SessionAuthenticationModule.SigningOut += new EventHandler<SigningOutEventArgs>(SessionAuthenticationModule_SigningOut);
    FederatedAuthentication.SessionAuthenticationModule.SignedOut += new EventHandler(SessionAuthenticationModule_SignedOut);
    FederatedAuthentication.SessionAuthenticationModule.SignOutError += new EventHandler<ErrorEventArgs>(SessionAuthenticationModule_SignOutError);
}
void SessionAuthenticationModule_SignOutError(object sender, ErrorEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SignOutError event");
}

void SessionAuthenticationModule_SignedOut(object sender, EventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SignedOut event");
}

void SessionAuthenticationModule_SigningOut(object sender, SigningOutEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SigningOut event");
}

void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenReceived event");
}

void SessionAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenCreated event");
    //Store session on the server-side token cache instead writing the whole token to the cookie.
    //It may improve throughput but introduces server affinity that may affect scalability
    FederatedAuthentication.SessionAuthenticationModule.IsReferenceMode = true;
}

El siguiente XML muestra cómo configurar el SAM en la canalización ASP.NET.The following XML shows how to configure the SAM in the ASP.NET pipeline. Muchos otros elementos que se encuentran en una configuración típica se omiten aquí por motivos de brevedad.Many other elements that are present in a typical configuration are omitted here for brevity.

<configuration>  
  <system.webServer>  
    <modules>  
      <!--WIF 4.5 modules -->  
      <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>  
      <add name="WsFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>  
    </modules>  
  </system.webServer>  
</configuration>  

Comentarios

Cuando está presente en la canalización ASP.net SessionAuthenticationModule , el (SAM) procesa las cookies de sesión en escenarios de WS-Federation.When present in the ASP.NET pipeline, the SessionAuthenticationModule (SAM) processes session cookies in WS-Federation scenarios. Utiliza el controlador de cookies especificado por CookieHandler la propiedad para leer la cookie de sesión sin procesar de la solicitud HTTP y escribirla en la respuesta http.It uses the cookie handler specified by the CookieHandler property to read the raw session cookie from the HTTP request and write it to the HTTP response. Usa la SessionSecurityTokenHandler que está configurada para que una aplicación deserialice la cookie de sesión sin procesar SessionSecurityToken en objetos.It uses the SessionSecurityTokenHandler that is configured for an application to deserialize the raw session cookie into SessionSecurityToken objects. El token de seguridad de la sesión contieneClaimlas notificaciones (ClaimsPrincipal) y la entidad de seguridad () asociadas a la entidad para la que se atiende la solicitud.The session security token contains the claims (Claim) and principal (ClaimsPrincipal) associated with the entity for which the request is being served.

El Sam agrega su OnAuthenticateRequest controlador de eventos HttpApplication.AuthenticateRequest al evento en la canalización ASP.net.The SAM adds its OnAuthenticateRequest event handler to the HttpApplication.AuthenticateRequest event in the ASP.NET pipeline. Este controlador intercepta las solicitudes de inicio de sesión y, si hay una cookie de sesión, la deserializa en un token de sesión y establece Thread.CurrentPrincipal las propiedades y HttpContext.User en la entidad de seguridad de notificaciones contenida en el token de sesión.This handler intercepts sign-in requests, and, if there is a session cookie, deserializes it into a session token, and sets the Thread.CurrentPrincipal and HttpContext.User properties to the claims principal contained in the session token. Invoca varios de los otros métodos expuestos por el SAM durante este proceso.It invokes several of the other methods exposed by the SAM during this process.

Se SignOut puede invocar el método para cerrar la sesión del usuario en una sesión (por ejemplo, en un archivo de código subyacente de SignOut.aspx.CS).The SignOut method can be invoked to sign the user out of a session (for example, in a SignOut.aspx.cs code-behind file).

El SAM expone varios eventos que proporcionan acceso a su canalización de procesamiento.The SAM exposes several events that provide access to its processing pipeline. Los SessionSecurityTokenReceived eventos SessionSecurityTokenCreated y permiten modificar los tokens de sesión que se leen de las cookies o se crean durante el procesamiento.The SessionSecurityTokenReceived and SessionSecurityTokenCreated events enable you to modify session tokens that are read from cookies or created during processing. Normalmente, esto se hace para agregar, quitar o transformar notificaciones en el token o para ajustar su hora de expiración.Typically, this is done to add, remove, or transform claims in the token or to adjust its expiration time. Los SigningOuteventos SignedOut, ySignOutError proporcionan enlaces al procesamiento de las solicitudes de cierre de sesión.The SigningOut, SignedOut, and SignOutError events provide hooks into the processing of sign-out requests. Para muchos escenarios, bastará con agregar controladores para estos eventos, a menudo para el archivo global.asax.cs.For many scenarios, simply adding handlers for these events, often to the global.asax.cs file, will be sufficient.

En escenarios más complicados, puede derivar SessionAuthenticationModule de para implementar un SAM personalizado.For more complicated scenarios, you can derive from SessionAuthenticationModule to implement a custom SAM. Con este fin, muchos de los métodos que se invocan durante OnAuthenticateRequest y SignOut se exponen para que pueda proporcionar un comportamiento personalizado en fases específicas del ciclo de vida de procesamiento de la sesión.To this end, many of the methods that are invoked during OnAuthenticateRequest and SignOut are exposed so that you can provide custom behavior at specific stages of the session processing lifecycle.

Puede Agregar el SAM a la canalización ASP.net en un archivo de configuración agregándolo a los módulos http en el elemento de <system.webServer> la versión 7 de IIS y versiones posteriores, o <system.web> en el elemento para las versiones anteriores a IIS 7.You can add the SAM to the ASP.NET pipeline in a configuration file by adding it to the HTTP modules under either the <system.webServer> element for IIS version 7 and later or under the <system.web> element for versions prior to IIS 7. El controlador de cookies que usa Sam se puede configurar con <el> elemento cookieHandler .The cookie handler used by the SAM can be configured with the <cookieHandler> element.

Constructores

SessionAuthenticationModule() SessionAuthenticationModule() SessionAuthenticationModule() SessionAuthenticationModule()

Inicializa una nueva instancia de la clase SessionAuthenticationModule.Initializes a new instance of the SessionAuthenticationModule class.

Propiedades

ContextSessionSecurityToken ContextSessionSecurityToken ContextSessionSecurityToken ContextSessionSecurityToken

Obtiene el SessionSecurityToken activo para el HttpContext actual.Gets the active SessionSecurityToken for the current HttpContext.

CookieHandler CookieHandler CookieHandler CookieHandler

Obtiene el controlador de cookies que se usa para leer, escribir y eliminar las cookies de sesión.Gets the cookie handler that is used to read, write, and delete session cookies.

FederationConfiguration FederationConfiguration FederationConfiguration FederationConfiguration

Obtiene o establece el objeto FederationConfiguration que esté en efecto para el módulo actual.Gets or sets the FederationConfiguration object that is in effect for the current module.

(Inherited from HttpModuleBase)
IsReferenceMode IsReferenceMode IsReferenceMode IsReferenceMode

Obtiene o establece un valor que especifica si la información de sesión (valores de notificación, etc.) debe almacenarse en la cookie de sesión o si el contenido de sesión debe almacenarse en el servidor, mediante la cookie para almacenar solo una referencia.Gets or sets a value that specifies whether the session information (claim values, etc.) should be stored in the session cookie or whether the session content should be stored on the server side, using the cookie to store just a reference.

Métodos

AuthenticateSessionSecurityToken(SessionSecurityToken, Boolean) AuthenticateSessionSecurityToken(SessionSecurityToken, Boolean) AuthenticateSessionSecurityToken(SessionSecurityToken, Boolean) AuthenticateSessionSecurityToken(SessionSecurityToken, Boolean)

Autentica la solicitud entrante validando el token de entrada de la sesión.Authenticates the incoming request by validating the incoming session token. Cuando la validación se realiza correctamente, actualiza la entidad de seguridad de contexto y subproceso HTTP actual con el SessionSecurityToken especificado.Upon successful validation, it updates the current HTTP context and thread principal with the specified SessionSecurityToken.

ContainsSessionTokenCookie(HttpCookieCollection) ContainsSessionTokenCookie(HttpCookieCollection) ContainsSessionTokenCookie(HttpCookieCollection) ContainsSessionTokenCookie(HttpCookieCollection)

Determina si una cookie de sesión está en la colección de cookies especificada.Determines whether a session cookie is in the specified cookie collection.

CreateSessionSecurityToken(ClaimsPrincipal, String, DateTime, DateTime, Boolean) CreateSessionSecurityToken(ClaimsPrincipal, String, DateTime, DateTime, Boolean) CreateSessionSecurityToken(ClaimsPrincipal, String, DateTime, DateTime, Boolean) CreateSessionSecurityToken(ClaimsPrincipal, String, DateTime, DateTime, Boolean)

Crea un objeto SessionSecurityToken a partir de los parámetros especificados mediante el controlador de tokens de sesión configurado.Creates a SessionSecurityToken from the specified parameters by using the configured session token handler.

DeleteSessionTokenCookie() DeleteSessionTokenCookie() DeleteSessionTokenCookie() DeleteSessionTokenCookie()

Elimina la cookie de sesión y la quita de la memoria caché.Deletes the session cookie and removes it from the cache.

Dispose() Dispose() Dispose() Dispose()

Libera los recursos (salvo memoria) usados por la instancia actual de la clase HttpModuleBase.Releases the resources (except memory) used by the current instance of the HttpModuleBase class.

(Inherited from HttpModuleBase)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
Init(HttpApplication) Init(HttpApplication) Init(HttpApplication) Init(HttpApplication)

Inicializa el módulo HTTP.Initializes the HTTP module.

(Inherited from HttpModuleBase)
InitializeModule(HttpApplication) InitializeModule(HttpApplication) InitializeModule(HttpApplication) InitializeModule(HttpApplication)

Inicializa el módulo y se prepara para controlar eventos de su objeto de aplicación de ASP.NETASP.NET del módulo.Initializes the module and prepares it to handle events from the module's ASP.NETASP.NET application object.

InitializePropertiesFromConfiguration() InitializePropertiesFromConfiguration() InitializePropertiesFromConfiguration() InitializePropertiesFromConfiguration()

Inicializa las propiedades del módulo basadas en definiciones en el archivo de configuración.Initializes the module properties based on definitions in the configuration file.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
OnAuthenticateRequest(Object, EventArgs) OnAuthenticateRequest(Object, EventArgs) OnAuthenticateRequest(Object, EventArgs) OnAuthenticateRequest(Object, EventArgs)

Controla el evento AuthenticateRequest de canalización de ASP.NETASP.NET .Handles the AuthenticateRequest event from the ASP.NETASP.NET pipeline.

OnPostAuthenticateRequest(Object, EventArgs) OnPostAuthenticateRequest(Object, EventArgs) OnPostAuthenticateRequest(Object, EventArgs) OnPostAuthenticateRequest(Object, EventArgs)

Controla el evento PostAuthenticateRequest de canalización de ASP.NETASP.NET .Handles the PostAuthenticateRequest event from the ASP.NETASP.NET pipeline.

OnSessionSecurityTokenCreated(SessionSecurityTokenCreatedEventArgs) OnSessionSecurityTokenCreated(SessionSecurityTokenCreatedEventArgs) OnSessionSecurityTokenCreated(SessionSecurityTokenCreatedEventArgs) OnSessionSecurityTokenCreated(SessionSecurityTokenCreatedEventArgs)

Genera el evento SessionSecurityTokenCreated.Raises the SessionSecurityTokenCreated event.

OnSessionSecurityTokenReceived(SessionSecurityTokenReceivedEventArgs) OnSessionSecurityTokenReceived(SessionSecurityTokenReceivedEventArgs) OnSessionSecurityTokenReceived(SessionSecurityTokenReceivedEventArgs) OnSessionSecurityTokenReceived(SessionSecurityTokenReceivedEventArgs)

Genera el evento SessionSecurityTokenReceived.Raises the SessionSecurityTokenReceived event.

OnSignedOut(EventArgs) OnSignedOut(EventArgs) OnSignedOut(EventArgs) OnSignedOut(EventArgs)

Genera el evento SignedOut.Raises the SignedOut event.

OnSigningOut(SigningOutEventArgs) OnSigningOut(SigningOutEventArgs) OnSigningOut(SigningOutEventArgs) OnSigningOut(SigningOutEventArgs)

Genera el evento SigningOut.Raises the SigningOut event.

OnSignOutError(ErrorEventArgs) OnSignOutError(ErrorEventArgs) OnSignOutError(ErrorEventArgs) OnSignOutError(ErrorEventArgs)

Genera el evento SignOutError.Raises the SignOutError event.

ReadSessionTokenFromCookie(Byte[]) ReadSessionTokenFromCookie(Byte[]) ReadSessionTokenFromCookie(Byte[]) ReadSessionTokenFromCookie(Byte[])

Lee un SessionSecurityToken de la cookie de sesión especificada.Reads a SessionSecurityToken from the specified session cookie.

SetPrincipalFromSessionToken(SessionSecurityToken) SetPrincipalFromSessionToken(SessionSecurityToken) SetPrincipalFromSessionToken(SessionSecurityToken) SetPrincipalFromSessionToken(SessionSecurityToken)

Establece la entidad de seguridad de HttpContext y Thread en la entidad de seguridad contenida en el token de sesión especificado.Sets the principal on the HttpContext and Thread to the principal that is contained in the specified session token.

SignOut() SignOut() SignOut() SignOut()

Cierra la sesión del usuario actual y genera los eventos asociados.Signs the current user out and raises the associated events.

ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)
TryReadSessionTokenFromCookie(SessionSecurityToken) TryReadSessionTokenFromCookie(SessionSecurityToken) TryReadSessionTokenFromCookie(SessionSecurityToken) TryReadSessionTokenFromCookie(SessionSecurityToken)

Se intenta leer un SessionSecurityToken de una cookie de sesión y devuelve un valor que indica si la cookie de sesión se leyó correctamente.Attempts to read a SessionSecurityToken from a session cookie and returns a value that indicates whether the session cookie was successfully read.

ValidateSessionToken(SessionSecurityToken) ValidateSessionToken(SessionSecurityToken) ValidateSessionToken(SessionSecurityToken) ValidateSessionToken(SessionSecurityToken)

Valida el SessionSecurityToken especificado y devuelve sus identidades.Validates the specified SessionSecurityToken and returns its identities.

WriteSessionTokenToCookie(SessionSecurityToken) WriteSessionTokenToCookie(SessionSecurityToken) WriteSessionTokenToCookie(SessionSecurityToken) WriteSessionTokenToCookie(SessionSecurityToken)

Escribe el SessionSecurityToken especificado en una cookie de sesión.Writes the specified SessionSecurityToken to a session cookie.

Eventos

SessionSecurityTokenCreated SessionSecurityTokenCreated SessionSecurityTokenCreated SessionSecurityTokenCreated

Se produce cuando se ha creado un token de seguridad de la sesión.Occurs when a session security token has been created.

SessionSecurityTokenReceived SessionSecurityTokenReceived SessionSecurityTokenReceived SessionSecurityTokenReceived

Se produce una vez leído un token de seguridad de la sesión de una cookie.Occurs when a session security token has been read from a cookie.

SignedOut SignedOut SignedOut SignedOut

Se produce una vez ha cerrado sesión el usuario.Occurs after the user is signed out.

SigningOut SigningOut SigningOut SigningOut

Se produce antes de eliminar la sesión de inicio.Occurs before deleting the sign-in session.

SignOutError SignOutError SignOutError SignOutError

Se produce cuando hay un error durante el cierre de sesión.Occurs when there is an error during sign-out.

Se aplica a