Compartir a través de


SessionStateSection Class

Configura el estado de sesión de una aplicación web.

Sintaxis

class SessionStateSection : ConfigurationSectionWithCollection  

Métodos

La siguiente tabla muestra los métodos expuestos por la clase SessionStateSection.

Nombre Descripción
Add (Agregar) (Se hereda de ConfigurationSectionWithCollection).
Borrar (Se hereda de ConfigurationSectionWithCollection).
Get (Se hereda de ConfigurationSectionWithCollection).
GetAllowDefinition (Se hereda de ConfigurationSection).
GetAllowLocation (Se hereda de ConfigurationSection).
Remove (Se hereda de ConfigurationSectionWithCollection).
RevertToParent (Se hereda de ConfigurationSection).
SetAllowDefinition (Se hereda de ConfigurationSection).
SetAllowLocation (Se hereda de ConfigurationSection).

Propiedades

La siguiente tabla enumera las propiedades expuestas por la clase SessionStateSection.

Nombre Descripción
AllowCustomSqlDatabase Valor boolean de lectura y escritura. true si el usuario puede especificar el valor de catálogo inicial en la propiedad SqlConnectionString; en caso contrario, false. El valor predeterminado es false.
Cookieless Valor de lectura y escritura sint32 que configura cómo se usan las cookies para identificar las sesiones de cliente. Los valores posibles se enumeran más adelante en la sección Comentarios. Nota: Hay dos maneras en que el estado de sesión puede almacenar el identificador único que asocia el cliente a una sesión de servidor: almacenando una cookie HTTP en el cliente o codificando el identificador de sesión en la dirección URL. Almacenar el identificador de sesión en la cookie es más seguro, pero requiere que el explorador cliente admita cookies. En el caso de las aplicaciones que permiten a los clientes que no admiten cookies, como varios dispositivos móviles, el identificador de sesión se puede almacenar en la dirección URL. La opción de dirección URL tiene varias desventajas. Requiere que los vínculos del sitio sean relativos y que la página se redirija al principio de la sesión con nuevos valores de cadena de consulta. También expone el identificador de sesión en la cadena de consulta, donde se puede usar en un ataque de seguridad. Solo debe usar el modo sin cookies si necesita admitir clientes que carecen de compatibilidad con cookies.
CookieName Valor de lectura y escritura string que especifica el nombre de la cookie HTTP que se va a usar para la identificación de la sesión. El valor predeterminado es "ASP.NET_SessionId".
CustomProvider Valor de lectura y escritura string que especifica el nombre de un proveedor personalizado de la propiedad Providers que se usa cuando la propiedad Mode está establecida en Custom.
Location (Se hereda de ConfigurationSection). Una propiedad clave.
Mode Valor de lectura y escritura sint32 que especifica dónde almacenar el estado de la sesión. Los valores posibles se enumeran más adelante en la sección Comentarios. Nota: La propiedad Mode no es necesaria y se puede heredar de un nivel superior en la jerarquía de configuración o del valor predeterminado. Sin embargo, el controlador de configuración siempre escribirá el modo en función del valor heredado actual de la sección.
PartitionResolverType Valor de lectura y escritura string que contiene el nombre completo del tipo de resolución que particiona los datos de estado de sesión en varios nodos back-end cuando la propiedad Mode está establecida en SQLServer o StateServer. Nota: Si se especifica esta propiedad, se omiten las propiedades SqlConnectionString y StateConnectionString. La cadena de conexión devuelta por PartitionResolverType se usará en cada solicitud para conectarse a la ubicación de servidor adecuada para el resto de la solicitud. Si la cadena de conexión no es válida, ASP.NET producirá la misma excepción que se produce cuando la cadena de conexión configurada para el servidor no sea válida.
Path (Se hereda de ConfigurationSection). Una propiedad clave.
Providers Valor ProviderSettings que contiene el nombre y el tipo de proveedores que realizan servicios relacionados con el estado de sesión.
RegenerateExpiredSessionId Valor boolean de lectura y escritura. true si el cliente especifica el identificador de sesión cuando el cliente especifica un identificador de sesión expirado; de lo contrario, false. El valor predeterminado es false. Nota: De forma predeterminada, solo se vuelven a emitir las direcciones URL sin cookies cuando esta propiedad está habilitada.
SectionInformation (Se hereda de ConfigurationSection).
SessionIDManagerType Valor de lectura y escritura string que especifica el tipo completo del administrador de identificadores de sesión.
SqlCommandTimeout Valor de lectura y escritura datetime que especifica el tiempo de espera de los comandos SQL que usan el modo de estado de sesión de SQL Server. El valor predeterminado es 30 segundos.
SqlConnectionString Valor de lectura y escritura string que contiene la cadena de conexión a SQL Server. El valor predeterminado es "data source=localhost; Integrated Security=SSPI". Esta propiedad es necesaria cuando la propiedad Mode está establecida en SQLServer.
StateConnectionString Valor de lectura y escritura string que especifica el nombre del servidor y el puerto cuando el estado de sesión se almacena de forma remota. El valor predeterminado es "tcpip=loopback:42424". Esta propiedad es necesaria cuando la propiedad Mode está establecida en StateServer. Nota: Asegúrese de que el servicio de estado ASP.NET se ejecuta en el servidor remoto que almacena la información de estado de sesión. Este servicio se instala con ASP.NET y se encuentra de forma predeterminada en [unidad:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. De forma predeterminada, este servicio está configurado para el inicio manual. Cambie el comportamiento de inicio a Automático.
StateNetworkTimeout Valor de lectura y escritura datetime que especifica el tiempo, en segundos, que la conexión de red entre el servidor web y el servidor de estado puede permanecer inactiva antes de que se abandone la sesión. Esta propiedad es necesaria cuando la propiedad Mode está establecida en StateServer. El valor predeterminado es 10 segundos.
Timeout Valor de lectura y escritura datetime que especifica el tiempo, en minutos, después del cual expirará la sesión debido a la inactividad. El valor predeterminado es de 20 minutos. Nota: No se puede establecer la propiedad Timeout en un valor superior a 525 601 minutos (1 año).
UseHostingIdentity Valor boolean de lectura y escritura. true si la autenticación de Windows y la identidad del proceso de host (ya sea ASP.NET o una identidad del servicio de Windows) están habilitadas para las conexiones remotas; false si el estado de sesión usa la suplantación de cliente cuando está disponible. El valor predeterminado es true. Nota: Esta configuración simplifica la administración de la autenticación integrada de Windows concediéndole acceso a la base de datos solo al proceso de trabajo o a la identidad de la aplicación de ASP.NET y no a todo el dominio o a un conjunto de usuarios del dominio.

Subclases

Esta clase no contiene subclases.

Comentarios

Cuando un nuevo cliente comienza a interactuar con una aplicación web, se emite un identificador de sesión y se asocia con todas las solicitudes posteriores del mismo cliente durante el tiempo en que la sesión es válida. Este identificador se usa para mantener el estado del lado servidor asociado a la sesión de cliente entre solicitudes. La clase SessionStateSection controla cómo la aplicación ASP.NET establece y mantiene esta asociación en nombre de cada cliente.

En la siguiente tabla se describen los posibles valores de la propiedad Cookieless. El valor predeterminado es 1 (UseCookies).

Valor Palabra clave Descripción
0 UseUri El identificador de sesión se inserta como una cadena de consulta en la solicitud de identificador uniforme de recursos (URI) y el URI se redirige a la dirección URL solicitada originalmente. La solicitud de URI modificada se usa durante la sesión, por lo que no es necesaria ninguna cookie. Nota: Al usar el modo UseUri, debe establecer la propiedad RegenerateExpiredSessionId en true. Esto permite que un servidor web expire y regenere tokens, por lo que un posible atacante dispone de menos tiempo para capturar una cookie y obtener acceso al contenido del servidor web. También debe considerar la posibilidad de cambiar la propiedad Timeout a menos del valor predeterminado de 20 minutos.
1 UseCookies El identificador de sesión se almacena en una cookie HTTP en el cliente mientras dure la conexión de un usuario a un sitio web. Las cookies se pasan en los encabezados HTTP de todas las solicitudes entre un cliente y un servidor web y son más eficaces en el estado de la sesión de seguimiento porque no requieren redireccionamiento. Además, conservan el estado si un usuario deja un sitio para visitar otro y, a continuación, vuelve al sitio original. Nota: Considere la posibilidad de cambiar la propiedad Timeout a menos del valor predeterminado de 20 minutos para que un posible atacante tenga menos tiempo para capturar una cookie y obtener acceso al contenido del sitio web.
2 AutoDetect El identificador de sesión se almacena en una cookie HTTP en el cliente solo después de un protocolo de enlace con el explorador comprueba que se puede almacenar una cookie. Nota: Al usar el modo AutoDetect, debe establecer la propiedad RegenerateExpiredSessionId en true. Esto permite que un servidor web expire y regenere tokens, por lo que un posible atacante dispone de menos tiempo para capturar una cookie y obtener acceso al contenido del servidor web. También debe considerar la posibilidad de cambiar la propiedad Timeout a menos del valor predeterminado de 20 minutos.
3 UseDeviceProfile El identificador de sesión se almacena en una cookie HTTP en el cliente si el perfil de dispositivo cliente admite cookies; de lo contrario, no se utiliza ninguna cookie. Si el perfil de dispositivo admite cookies, se usarán incluso si el usuario ha deshabilitado la compatibilidad con cookies. Use esta configuración para asegurarse de que los identificadores sin cookies solo se usarán con los clientes que los requieran (por ejemplo, exploradores móviles). Nota: Al usar el modo UseDeviceProfile, debe establecer la propiedad RegenerateExpiredSessionId en true. Esto permite que un servidor web expire y regenere tokens, por lo que un posible atacante dispone de menos tiempo para capturar una cookie y obtener acceso al contenido del servidor web. También debe considerar la posibilidad de cambiar la propiedad Timeout a menos del valor predeterminado de 20 minutos.

En la siguiente tabla se describen los posibles valores de la propiedad Mode. El valor predeterminado es 1 (InProc).

Valor Palabra clave Descripción
0 Off El estado de sesión está deshabilitado.
1 InProc El estado de sesión se almacena para una aplicación de ASP.NET en el proceso de trabajo donde se ejecuta la aplicación.

El estado de sesión en proceso es el modo de almacenamiento de estado integrado más rápido. Sin embargo, a medida que almacena más datos en una sesión, consume más memoria, por lo que se puede ralentizar el rendimiento del servidor.

Los datos de estado de sesión en proceso se pierden si el proceso de trabajo se recicla. Si las aplicaciones de ASP.NET necesitan conservar los datos de estado de sesión y la velocidad del acceso a datos no es una preocupación principal, considere la posibilidad de usar un modo de estado de sesión fuera del proceso para almacenar los datos.

El estado de sesión en proceso no se puede usar en una granja de servidores web sin un esquema de afinidad de identificador de sesión que garantice que todas las solicitudes con un identificador de sesión determinado se dirigirán al mismo servidor web. Nota: El servicio de estado ASP.NET (Aspnet_state.exe) debe ejecutarse para que funcione el estado de sesión en proceso. Este servicio se instala con ASP.NET y se encuentra de forma predeterminada en [unidad:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. De forma predeterminada, este servicio está configurado para el inicio manual. Cambie el comportamiento de inicio a Automático.
2 StateServer El estado de sesión usa el servicio de estado ASP.NET fuera de proceso para almacenar información de estado. La ventaja de esta configuración es que el estado de sesión se conserva cuando se recicla el proceso de trabajo de la aplicación. Si usa esta configuración, debe especificar una cadena de conexión en la propiedad StateConnectionString.
3 SQLServer El estado de sesión usa una base de datos de SQL Server fuera de proceso para almacenar información de estado. La ventaja de esta configuración es que el estado de sesión se conserva cuando el proceso de trabajo de la aplicación se recicla, o si el servicio de estado de ASP.NET o el servidor web deja de funcionar. Si usa esta configuración, debe especificar una cadena de conexión en la propiedad SqlConnectionString. Nota: Para usar el modo de estado de sesión SQLServer, debe ejecutar el script SQL de InstallSqlState.sql (que se instala en [unidad:]\WINDOWS\Microsoft.NET\Framework\VersionNumber como parte de la instalación predeterminada de .NET Framework) en el equipo que ejecuta SQL Server que almacenará el estado de sesión. Esto crea una base de datos denominada ASPState con nuevos procedimientos almacenados y crea nuevas tablas ASPStateTempApplications y ASPStateTempSessions en la base de datos TempDB.
4 Custom El estado de sesión usa un almacén de datos personalizado para almacenar información de estado de sesión. Si usa esta configuración, debe especificar el nombre del proveedor personalizado en la propiedad CustomProvider.

Jerarquía de herencia

ConfigurationSection

ConfigurationSectionWithCollection

SessionStateSection

Requisitos

Tipo Descripción
Remoto - IIS 7.0 en Windows Vista
- IIS 7.5 en Windows 7
- IIS 8.0 en Windows 8
- IIS 10.0 en Windows 10
Server - IIS 7.0 en Windows Server 2008
- IIS 7.5 en Windows Server 2008 R2
- IIS 8.0 en Windows Server 2012
- IIS 8.5 en Windows Server 2012 R2
- IIS 10.0 en Windows Server 2016
Producto - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0
Archivo MOF WebAdministration.mof

Consulte también

System.Web.Configuration.SystemWebSectionGroup.SessionState
System.Web.SessionState.SessionStateModeConfigurationSectionWithCollection Class
ProviderSettings Class
Administración rápida, escalable y segura del estado de sesión para las aplicaciones web