如何在 ASP.NET Core 5 MVC (.NET 5) 中获取记录的用户数据?
How to get logged user data in ASP.NET Core 5 MVC (.NET 5)?
我目前正在开发一个 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 核心 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 中有细微变化,请告诉我或修改小细节。
我目前正在开发一个 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;
}
}
您可以在此处查看示例代码
关注
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 中有细微变化,请告诉我或修改小细节。