HttpSessionState.IsCookieless Propriedade

Definição

Recebe um valor que indica se o ID da sessão está embutido na URL ou armazenado num cookie HTTP.

public:
 property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean

Valor de Propriedade

true se a sessão estiver embutida na URL; caso contrário, false.

Exemplos

O seguinte exemplo de código define o cookieless atributo session como true no ficheiro Web.config.

<configuration>
  <system.web>
    <sessionState
      mode="InProc"
      cookieless="true"
      regenerateExpiredSessionId="true"
      timeout="30" />
  </system.web>
</configuration>

Observações

O ASP.NET identifica as sessões de forma única com cada navegador. Por defeito, o identificador único de uma sessão é armazenado num cookie de sessão que não expira no navegador. Pode especificar que os identificadores de sessão não sejam armazenados num cookie definindo o cookieless atributo como true no elemento de configuração sessionState .

Note

Para melhorar a segurança da sua aplicação, esta deve permitir que os utilizadores façam logout, momento em que deve chamar o Abandon método. Isto reduz a possibilidade de uma fonte indesejada, usando o identificador único na URL, recuperar dados privados armazenados na sessão para um utilizador.

O ASP.NET mantém o estado da sessão sem cookies ao inserir automaticamente um ID de sessão único na URL da página. Por exemplo, o URL seguinte foi modificado pelo ASP.NET para incluir o ID de sessão único lit3py55t21z55v55vlm25s55:

http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx

O ASP.NET modifica os links contidos em todas as páginas solicitadas, incorporando um valor de session ID nos links pouco antes de enviar cada página para o navegador. O estado da sessão é mantido desde que o utilizador siga o caminho dos links fornecidos pelo site. No entanto, se o agente de utilizador reescrever uma URL, a instância de estado de sessão será perdida.

O ID da sessão está incorporado no URL após a barra que segue o nome da aplicação e antes de qualquer identificador de ficheiro ou diretório virtual remanescente. Isto permite-ASP.NET resolver o nome da aplicação antes de envolver o SessionStateModule no pedido.

Por defeito, os identificadores de sessão usados em sessões sem cookies são reciclados. Ou seja, se for feito um pedido com um ID de sessão que expirou, uma nova sessão é iniciada usando o ID de sessão fornecido com o pedido. Este comportamento pode resultar na partilha indesejada de dados de sessão quando um link que contém um ID de sessão sem cookies é partilhado com vários navegadores, talvez através de um motor de busca ou outro programa. Pode reduzir a possibilidade de dados de sessão serem partilhados por vários clientes desativando a reciclagem dos identificadores de sessão. Para isso, defina o regenerateExpiredSessionId atributo do elemento de configuração sessionState para true. Isto resultará na geração de um novo ID de sessão quando for feito um pedido de sessão sem cookies com um ID de sessão expirado. Note que, se o pedido feito com o ID de sessão expirado usar o método HTTP POST, quaisquer dados publicados serão perdidos quando regenerateExpiredSessionId for true, pois ASP.NET realiza um redirecionamento para garantir que o navegador tem o novo identificador de sessão na URL.

Note

Embora definir o regenerateExpiredSessionId atributo para true reduza a possibilidade de partilha indesejada de dados de sessão, não protege contra uma fonte indesejada aceder à sessão de outro utilizador ao obter o SessionID valor e incluí-lo nos pedidos ao servidor. Se estiver a armazenar informação privada ou sensível no estado da sessão, recomenda-se que utilize SSL para encriptar qualquer comunicação entre o navegador e o servidor que inclua o SessionID.

Aplica-se a

Ver também