繁体   English   中英

如何获取上次登录用户的用户名

[英]How to get username of last logged in user

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM