使用身份通过ID获取用户名

时间:2020-04-17 22:10:21

标签: c# asp.net-identity

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

User.Identity.GetFirstClaimValueByType("id")

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

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

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

尝试:

但是现在我想发送ID以获得用户名,这可能吗?问候

_httpContextAccessor.HttpContext

1 个答案:

答案 0 :(得分:1)

以下是如何在控制器内部使用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为您的Identity类注册的UserManager<TUser>的类型相同。