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.

Foi útil?

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;
        }
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top