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

问题描述 投票:0回答:1

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

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

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

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

c# asp.net-mvc
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.