如何获取上次登录用户

时间:2018-03-06 10:00:29

标签: c# asp.net-mvc

我想在注销后检索上次登录用户的用户名,这应该是使用ASP.NET MVC实现的。

每当用户按下浏览器的后退按钮时,我也不想返回。为此,我使用以下代码:

protected void Application_BeginRequest()
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
    Response.Cache.SetNoStore();
}

问题是,如果我使用它,我清除所有数据,然后无法检索用户名。

1 个答案:

答案 0 :(得分:0)

由于您的问题中的代码与缓存有关,我假设您希望在用户注销后在浏览器中显示用户名(可能还有其他用户信息)。这不是一个浏览器缓存问题,它是一个服务器状态问题,这是ADyson评论中建议的方向。

您需要从登录状态中分离您在浏览器中提供的用户信息。换句话说,更改您的登录过程以便仍然知道用户身份,并且“登录”或“未登录”只是与每个用户身份相关联的“状态”。无论用户是否登录,您仍然知道他们在原始登录后的身份。

最简单的方法可能是使用存储在cookie中的数据跟踪该用户身份,这样您就不需要为服务器增加在调用之间存储会话状态的负担。它可以像存储数据库用户表的主键一样简单。 (显然,您不应该使用它来访问已注销用户的敏感信息,因为这种简单的方法可能会被伪造,但用户名通常不被视为受保护的信息。)