【问题标题】:How to get logged user data in ASP.NET Core 5 MVC (.NET 5)?如何在 ASP.NET Core 5 MVC (.NET 5) 中获取记录的用户数据?
【发布时间】:2026-01-13 08:40:01
【问题描述】:
我目前正在开发一个 ASP.NET Core 5 MVC Web 项目,我使用默认创建的单用户帐户生成模板进行用户管理。我已经应用了迁移,并且按预期工作正常。我需要登录用户,在 .NET 5 单用户帐户模板 AccountController 中不可见。我在控制器外尝试了以下代码,它给出了null。
public class UserService
{
private readonly IHttpContextAccessor _context;
public UserService(IHttpContextAccessor context)
{
_context = context;
}
public string GetUser()
{
return _context.HttpContext.User?.Identity?.Name;
}
}
【问题讨论】:
标签:
asp.net-mvc
asp.net-core
asp.net-core-mvc
asp.net-identity
.net-5
【解决方案1】:
您可以在此处查看示例代码 https://*.com/a/38751842/3728901(可能是 ASP.NET Core 1、2 或 3)
专注于
public class MyController : Microsoft.AspNetCore.Mvc.Controller
var id = _userManager.GetUserId(User); // Get user id:
或其他方式
private UserManager<ApplicationUser> _userManager;
//class constructor
public MyController(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
和
var user = await _userManager.GetUserAsync(User);
var email = user.Email;
因为这个问题与 .NET 5 相关,所以我不认为这个问题是重复的。如果 .NET 5 有细微变化,请告诉我或修改小细节。