Pergunta

Estou interessado em como fazer um objeto HttpCookie regular em um cookie que expira no final de uma sessão. Não estou interessado em alguém showing me HttpContext.Session. Como é que um cookie olhar sessão nos cabeçalhos de resposta em comparação com um cookie normal? Como posso modificar um HttpCookie para expirar no final de uma sessão? Obrigado!

Foi útil?

Solução

Um cookie de sessão é apenas um cookie que não tem qualquer conjunto data de validade.

Response.Cookies.Add(new HttpCookie("name", "value"));

ou

Response.Cookies["name"] = "value";

Outras dicas

Um cookie com uma expiração de DateTime.MinValue (1/1/0001) irá expirar no final da sessão. Esta é a data de validade padrão para um cookie em asp.net.

Você pode forçar um cookie para ser excluído fora do cliente imediately, definindo a data de expiração para algo antes "agora" (DateTime.Now.AddDays (1-D)), caso em que será eliminado quando ele atinge o cliente.

Se tivéssemos tipos anuláveis ??volta quando HttpCookie foi codificado meu palpite é que uma data nula equivaleria a um cookie de sessão base e qualquer outra coisa que se traduzem no valor de expiração, mas este não é o caso.

expiração de cookie:

  • cookie de sessão - Expira data deve ser DateTime.MinValue que é 1/1/0001 00:00:00
  • bolinho Normal (tempo limitado) -. Expira data é qualquer data futura igual ou superior a DateTime.Now atual
  • Deleted bolinho -. A qualquer momento entre DateTime.MinValue e DateTime.Now

Para alterar o cookie para o cookie de sessão, basta atribuir MinValue.

httpCookie.Expires = DateTime.MinValue;

Se o seu cookie é nova. O valor padrão para DateTime deve ser DateTime.MinValue e sem necessidade de set.

CallMeLaNN

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top