使用identity通过id获取用户名

Get username by id using identity

我有 asp.net 核心身份,我想是否可以检索使用该身份的任何用户的用户名。我知道我们可以从当前用户中减去 Id 作为(这仅适用于当前 Jwt 令牌):

User.Identity.GetFirstClaimValueByType("id")

我阅读了其他问题,有人建议使用

string username = HttpContext.Current.GetOwinContext()
    .GetUserManager<ApplicationUserManager>().FindById(ID).UserName;

所以我尝试使用 HttpContextAccessor 但没有 GetOwinContext 的扩展方法,我该如何访问它。

尝试:

但是现在我想发送 id 来获取用户名,这可能吗?此致

_httpContextAccessor.HttpContext

这是一个如何在控制器中使用 ApplicationUserManager 的示例。

public class MyController : ControllerBase
{
    private static ApplicationUserManager _userManager;


    public MyController(ApplicationUserManager userManager)
    {
        _userManager = userManager;
    }


    [HttpGet]
    public async Task<IActionResult> Get()
    {
        var user = await _userManager.GetUserAsync(User);

        var userName = user.UserName;
    }
}

请注意:ApplicationUserManager 的类型必须与 Startup.cs 为您的身份 类 注册的 UserManager<TUser> 类型相同。