HttpSessionState.IsCookieless Propiedad

Definición

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

Boolean

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, momento en el que 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 lit3py55t21z5v5vlm25s55:

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 identificador 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 en SessionStateModule 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 mediante el identificador de sesión proporcionado con la solicitud. Este comportamiento puede dar lugar al 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 truede configuración sessionState en . 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 HTTPPOST, 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 frente a un origen no deseado que obtiene acceso a la sesión de otro usuario mediante la obtención del SessionID valor y su inclusión en las solicitudes al servidor. Si almacena 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.

Se aplica a

Consulte también