Qual é a diferença entre destruir uma sessão e remover seus valores? Você pode fornecer um exemplo que demonstre isso?
Eu procurei essa pergunta, mas não entendi a resposta total. Algumas respostas são:
Session.Abandon()
destrói a sessãoSession.Clear()
apenas remove todos os valores
Um amigo me disse isso:
Limpar a sessão não cancelará a definição da sessão, ela ainda existe com o mesmo ID para o usuário, mas com os valores simplesmente limpos.
O abandono destruirá a sessão completamente, o que significa que você precisa iniciar uma nova sessão antes de armazenar mais valores na sessão para aquele usuário.
O código abaixo funciona e não lança nenhuma exceção.
Session.Abandon();
Session["tempKey1"] = "tempValue1";
Quando você Abandon () uma Session, você (ou melhor, o usuário) obterá um novo SessionId
Quando eu testo a sessão, não faz nenhuma alteração quando eu abandono a sessão.
Acabei de encontrar uma diferença:
session.Abandon()
aumenta o Session_End
evento