Pergunta

Estou inserir algo no cache quando o usuário faz um login.

Agora eu quero excluir que a partir do cache quando a sessão do usuário expira. HttpContext é nulo .. então eu não sei por qual usuário da sessão expirado. Como posso ir sobre encontrar isso?

EDIT: , infelizmente SessionID não me oferecem muito. O que eu estou fazendo neste caso em particular está usando um HttpModule que alças AuthorizeRequest para inserir o nome do utilizador actual em cache para garantir que outro usuário a partir de outra máquina não pode login. Mas a sessão é nula no HttpModule. Então eu não posso usar isso. Qualquer outra sugestão?

Foi útil?

Solução

Você pode chegar à sessão em um HttpModule, você só tem que esperar até que ele é inicializado, ou seja, o evento AcquireRequestState ( http://msdn.microsoft.com/en-au/system.web.httpapplication.acquirerequeststate.aspx )

Outras dicas

Manipular o evento Session_End em sua global.asax. Aqui você deve ter acesso ao SessionID.

Assumindo que você está acessando o item em cache em cada página, você pode definir o item em cache para ter uma expiração deslizante. Defina o tempo de expiração para o mesmo que o tempo limite da sessão. Com a expiração variável, o cache será atualizada a cada vez que o objeto é acessado e será eliminado se não for acessada dentro desse tempo.

http://msdn.microsoft.com/en-us/ biblioteca / 4y13wyk9.aspx para obter mais informações.

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