MVC salva um token na sessão
Estou chamando um serviço e preciso passar o token de segurança permanente do usuário a cada solicitação feita.
Para fazer isso, adicionei este método à minha classe de controlador base:
protected UserData getUsr()
{
try
{
UserData usr = new UserData();
usr.SecurityToken = Session["secToken"].ToString();
MembershipUser mvcUser = Membership.GetUser(HttpContext.User.Identity.Name);
usr.Id = (int)mvcUser.ProviderUserKey;
return usr;
}
catch (Exception ex)
{
log.Debug("Could not create usr object", ex);
throw new Exception("Could not authenticate");
}
}
Esse problema aqui é que, às vezes, os dados de User.Identity duram mais do que os dados da sessão, fazendo com que bugs estranhos ocorram quando o usuário vê que está logado, mas suas solicitações falham.
Existe uma maneira melhor para armazenar esse token / posso armazená-lo de tal forma que ele irá expirar sempre que o objeto User.Identity expira?
Além disso, se alguém souber de alguns bons exemplos básicos de compreensão / documentação para HttpContext e MVC autorizar filtros que seriam ótimos.