HttpSessionState.IsCookieless Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene un valor que indica si el identificador de la sesión está incrustado en la dirección URL o se almacena en una cookie HTTP.
public:
property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean
Valor de propiedad
Es true
si la sesión está incrustada en la dirección URL; en caso contrario, es false
.
Ejemplos
En el ejemplo de código siguiente se establece el cookieless
atributo session en true en el archivo Web.config.
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
Comentarios
ASP.NET identifica sesiones de forma única con cada explorador. De forma predeterminada, el identificador único de una sesión se almacena en una cookie de sesión que no expira en el explorador. Puede especificar que los identificadores de sesión no se almacenen en una cookie estableciendo el cookieless
atributo true
en en el elemento de configuración sessionState .
Nota
Para mejorar la seguridad de la aplicación, la aplicación debe permitir que los usuarios cierren sesión, en cuyo momento debe llamar al Abandon método . Esto reduce la posibilidad de que un origen no deseado use el identificador único en la dirección URL para recuperar los datos privados almacenados en la sesión de un usuario.
ASP.NET mantiene el estado de sesión sin cookies insertando automáticamente un identificador de sesión único en la dirección URL de la página. Por ejemplo, ASP.NET ha modificado la siguiente dirección URL para incluir el identificador de sesión único lit3py55t21z5v55vlm25s55:
http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx
ASP.NET modifica los vínculos contenidos en todas las páginas solicitadas insertando un valor de id. de sesión en los vínculos justo antes de enviar cada página al explorador. El estado de sesión se mantiene siempre y cuando el usuario siga la ruta de acceso de los vínculos que proporciona el sitio. Sin embargo, si el agente de usuario vuelve a escribir una dirección URL, se perderá la instancia de estado de sesión.
El identificador de sesión se inserta en la dirección URL después de la barra diagonal que sigue al nombre de la aplicación y antes de cualquier identificador de archivo o directorio virtual restante. Esto permite que ASP.NET resuelva el nombre de la aplicación antes de implicar a SessionStateModule en la solicitud.
De forma predeterminada, los identificadores de sesión usados en las sesiones sin cookies se reciclan. Es decir, si se realiza una solicitud con un identificador de sesión que ha expirado, se inicia una nueva sesión con el identificador de sesión proporcionado con la solicitud. Este comportamiento puede provocar el uso compartido no deseado de datos de sesión cuando un vínculo que contiene un identificador de sesión sin cookies se comparte con varios exploradores, quizás a través de un motor de búsqueda u otro programa. Puede reducir la posibilidad de que varios clientes compartan datos de sesión deshabilitando el reciclaje de identificadores de sesión. Para ello, establezca el regenerateExpiredSessionId
atributo del elemento de configuración sessionState en true
. Esto dará lugar a que se genere un nuevo identificador de sesión cuando se realice una solicitud de sesión sin cookies con un identificador de sesión expirado. Tenga en cuenta que si la solicitud realizada con el identificador de sesión expirado usa el método HTTP POST
, los datos publicados se perderán cuando regenerateExpiredSessionId
sea true
, ya que ASP.NET realiza una redirección para asegurarse de que el explorador tiene el nuevo identificador de sesión en la dirección URL.
Nota
Al establecer el regenerateExpiredSessionId
atributo para true
reducir la posibilidad de compartir datos de sesión no deseados, no protege contra un origen no deseado que obtiene acceso a la sesión de otro usuario obteniendo el SessionID valor e incluyándolo en las solicitudes al servidor. Si va a almacenar información privada o confidencial en estado de sesión, se recomienda usar SSL para cifrar cualquier comunicación entre el explorador y el servidor que incluya .SessionID