MVC guarda un token en sesión

Estoy llamando a un servicio y debo pasar el token de seguridad permanente del usuario con cada solicitud que realice.

Para hacer eso, he agregado este método a mi clase 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");
        }
    }

Este problema aquí es que a veces los datos de User.Identity superan los datos de la sesión, lo que provoca errores extraños cuando el usuario ve que ha iniciado sesión pero luego sus solicitudes fallan.

¿Hay una mejor manera de almacenar este token / puedo almacenarlo de tal manera que caduque cada vez que el objeto User.Identity expire?

Además, si alguien sabe de algunos ejemplos / documentación de buena comprensión básica para HttpContext y MVC, autorice los filtros que serían excelentes.

Respuestas a la pregunta(4)

Su respuesta a la pregunta