使用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>
类型相同。
我有 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>
类型相同。