¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

SessionAuthenticationModule (Clase)

.NET Framework 4.6 and 4.5

Implementa un módulo de ASP.NET que procesa las cookies de sesión en escenarios de WS-Federation.

System.Object
  System.IdentityModel.Services.HttpModuleBase
    System.IdentityModel.Services.SessionAuthenticationModule

Espacio de nombres:  System.IdentityModel.Services
Ensamblado:  System.IdentityModel.Services (en System.IdentityModel.Services.dll)

public class SessionAuthenticationModule : HttpModuleBase

El tipo SessionAuthenticationModule expone los siguientes miembros.

  NombreDescripción
Método públicoSessionAuthenticationModuleInicializa una nueva instancia de la clase SessionAuthenticationModule.
Arriba

  NombreDescripción
Propiedad públicaContextSessionSecurityTokenObtiene el SessionSecurityToken activo para el HttpContext actual.
Propiedad públicaCookieHandlerObtiene el controlador de cookies que se usa para leer, escribir y eliminar las cookies de sesión.
Propiedad públicaFederationConfigurationObtiene o establece el objeto FederationConfiguration que esté en efecto para el módulo actual. (Se hereda de HttpModuleBase).
Propiedad públicaIsReferenceModeObtiene 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.
Arriba

  NombreDescripción
Método públicoAuthenticateSessionSecurityTokenAutentica la solicitud entrante validando el token de entrada de la sesión. Cuando la validación se realiza correctamente, actualiza la entidad de seguridad de contexto y subproceso HTTP actual con el SessionSecurityToken especificado
Método públicoContainsSessionTokenCookieDetermina si una cookie de sesión está en la colección de cookies especificada.
Método públicoCreateSessionSecurityTokenCrea un objeto SessionSecurityToken a partir de los parámetros especificados mediante el controlador de tokens de sesión configurado.
Método públicoDeleteSessionTokenCookieElimina la cookie de sesión y la quita de la memoria caché.
Método públicoDisposeLibera los recursos (salvo memoria) usados por la instancia actual de la clase HttpModuleBase. (Se hereda de HttpModuleBase).
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoInitInicializa el módulo HTTP. (Se hereda de HttpModuleBase).
Método protegidoInitializeModuleInicializa el módulo y se prepara para controlar eventos de su objeto de aplicación de ASP.NET del módulo. (Invalida a HttpModuleBase.InitializeModule(HttpApplication)).
Método protegidoInitializePropertiesFromConfigurationInicializa las propiedades del módulo basadas en definiciones en el archivo de configuración. (Invalida a HttpModuleBase.InitializePropertiesFromConfiguration()).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoOnAuthenticateRequestControla el evento HttpApplication.AuthenticateRequest de canalización de ASP.NET .
Método protegidoOnPostAuthenticateRequestControla el evento HttpApplication.PostAuthenticateRequest de canalización de ASP.NET .
Método protegidoOnSessionSecurityTokenCreatedGenera el evento SessionSecurityTokenCreated.
Método protegidoOnSessionSecurityTokenReceivedGenera el evento SessionSecurityTokenReceived.
Método protegidoOnSignedOutGenera el evento SignedOut.
Método protegidoOnSigningOutGenera el evento SigningOut.
Método protegidoOnSignOutErrorGenera el evento SignOutError.
Método públicoReadSessionTokenFromCookieLee un SessionSecurityToken de la cookie de sesión especificada.
Método protegidoSetPrincipalFromSessionTokenEstablece la entidad de seguridad de HttpContext y Thread en la entidad de seguridad contenida en el token de sesión especificado.
Método públicoSignOutCierra la sesión del usuario actual y genera los eventos asociados.
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Método públicoTryReadSessionTokenFromCookieSe 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.
Método protegidoValidateSessionTokenValida el SessionSecurityToken especificado y devuelve sus identidades.
Método públicoWriteSessionTokenToCookieEscribe el SessionSecurityToken especificado en una cookie de sesión.
Arriba

  NombreDescripción
Evento públicoSessionSecurityTokenCreatedSe produce cuando se ha creado un token de seguridad de la sesión.
Evento públicoSessionSecurityTokenReceivedSe produce una vez leído un token de seguridad de la sesión de una cookie.
Evento públicoSignedOutSe produce una vez ha cerrado sesión el usuario.
Evento públicoSigningOutSe produce antes de eliminar la sesión de inicio.
Evento públicoSignOutErrorSe produce cuando hay un error durante el cierre de sesión.
Arriba

Cuando está presente en la canalización de ASP.NET, SessionAuthenticationModule (SAM) procesa las cookies de sesión en escenarios de la WS- federación. Utiliza el controlador de la cookie especificado por la propiedad de CookieHandler para leer la cookie de sesión sin formato de la solicitud HTTP y escribirla en la respuesta HTTP. Utiliza SessionSecurityTokenHandler configurada para que una aplicación deserialice la cookie de sesión sin formato en los objetos de SessionSecurityToken . El token de seguridad de sesión contiene las peticiones (Claim) y la entidad de seguridad (ClaimsPrincipal) asociada a la entidad que se sirviendo la solicitud.

SAM agrega al controlador de eventos de OnAuthenticateRequest al evento de HttpApplication.AuthenticateRequest en la canalización de ASP.NET. Las intersecciones de este controlador signo- en solicitudes, y, si hay una cookie de sesión, la deserializar en un símbolo de la sesión, y establecer las propiedades de Thread.CurrentPrincipal y de HttpContext.User a la entidad de seguridad de las peticiones contenida en el token de la sesión. Invoca algunos de los otros métodos expuestos por SAM durante este proceso.

El método de SignOut se puede invocar para firmar el usuario fuera de sesión (por ejemplo, en un SignOut.aspx.cs código- subyacente del archivo).

SAM expone varios eventos que proporcionan acceso a la canalización de procesamiento. Los eventos de SessionSecurityTokenReceived y de SessionSecurityTokenCreated permiten modificar los tokens de la sesión se leen las cookies o se crean durante el procesamiento. Normalmente, esto se hace para agregar, quitar, o para transformar peticiones en el símbolo o para ajustar la fecha de expiración. SigningOut , SignedOut, y eventos de SignOutError proporcionan a los enlaces en el procesamiento de las solicitudes de signo - out. En muchos escenarios, simplemente agregar controladores para estos eventos, a menudo en el archivo global.asax.cs, será suficiente.

Para escenarios más complejas, puede derivar de SessionAuthenticationModule para implementar SAM personalizado. Con este propósito, muchos de los métodos que se invocan durante OnAuthenticateRequest y SignOut se exponen para poder proporcionar un comportamiento personalizado en las fases del ciclo de vida del procesamiento de la sesión.

Puede agregar SAM a la canalización de ASP.NET en un archivo de configuración agregándolo a los módulos HTTP bajo el elemento de <system.webServer> para la versión 7 de IIS y más tarde o bajo el elemento de <system.web> para las versiones antes de IIS 7. El controlador de la cookie utilizado por SAM puede configurar con el elemento de <cookieHandler> .


        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 XML siguiente muestra cómo configurar SAM en la canalización de ASP.NET. Muchos otros elementos que se encuentran en una configuración típica se omiten aquí para mayor brevedad.

<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>

.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.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.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft