在ASP.NET Core 5中,当用户未被成功验证时,User.Identity.Name 属性将为null,而许多开发人员需要在应用程序中使用 User.Identity.Name 属性来区分已验证用户和未授权用户。要解决这个问题,可以使用以下代码示例:
首先,在 Startup.cs 中添加以下配置:
services.Configure
接下来,在控制器的构造函数中注入 IHttpContextAccessor 和 IUserManager,并使用以下代码示例来获取用户名:
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly UserManager
public MyController(IHttpContextAccessor httpContextAccessor, UserManager
public async Task
这里我们通过依赖注入获取 IHttpContextAccessor 和 IUserManager,然后使用 HttpContext.User.Identity.Name 属性来获取用户名。如果用户名为null,则表示用户未被成功验证。如果用户名不为null,则使用 IUserManager 来查询用户并执行相关的逻辑。