ASP.NET - Get SessionID enquanto na do Global.asax
-
18-09-2019 - |
Pergunta
Eu estou gravando a sessão começar vezes a partir de quando log pessoas em minha aplicação web .NET 2.0, mas eu também gostaria de gravar a ID da sessão. Alguém pode me dar algum código de exemplo sobre como fazer isso (como acessar o ID da sessão de dentro do Global.asax).
Se você precisar de alguma informação adicional é só me avisar.
Solução
HttpContext.Current.Session.SessionID
Editar para mostrar teste nulo:
if ((HttpContext.Current != null) && (HttpContext.Current.Session != null) {
id = HttpContext.Current.Session.SessionID
}
Outras dicas
Você pode obter para ele pura e simplesmente com HttpContext.Current.Session.SessionId
como você provavelmente já sabe. Você precisa ser em ou após Application_AcquireRequestState
antes do estado da sessão foi carregada, e o estado da sessão também é carregado somente quando o implementos recursos IRequiresSessionState
solicitado. Você pode ver uma lista de todos os eventos em global.asax aqui: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5771721.html e leitura mais sobre IRequiresSessionState
aqui: http://msdn.microsoft .com / en-us / library / system.web.sessionstate.irequiressessionstate.aspx
Write para a sessão da data e hora e sessionid no momento do primeiro pedido seguinte ASP.NET de identificar a sessão do usuário.
protected void Application_PreRequestHandlerExecute(object sender, EventArgs eventArgs) {
var session = HttpContext.Current.Session;
if (session != null) {
if (session["foo"] == null) {
session["foo"] = DateTime.Now.Ticks + "|" + session.SessionID;
}
}
}