Asp.net Core按用户ID获取用户
使用Asp.net核心身份和实体框架核心,如何通过其UserId属性获取asp.net用户对象?我知道可以使用以下方法从HttpContext.User对象获取当前登录的用户:
Using Asp.net Core Identity and entity framework core, how can I get an asp.net user object by it's UserId property? I know it's possible to get the current logged in user from the HttpContext.User object using:
UserManager.GetUserAsync(HttpContext.User)
但是,当管理员登录时,我希望他们能够访问/修改任何用户的数据,以更新用户的电子邮件和电话号码,这些默认情况下是asp.net用户对象的一部分.
However when an admin is logged in, I want them to be able to access/modify any user's data in order to update user Emails and PhoneNumbers, which by default are part of the asp.net user object.
理想情况下,我希望能够执行以下操作:
Ideally I'd like to be able to do something like:
var userRecord = _userManager.GetUserById(model.userId);
//update user record
userRecord.Email = model.Email;
userRecord.PhoneNumber = model.PhoneNumber;
var newRecord = await _userManager.UpdateAsync(userRecord);
但是很明显,UserManager.GetUserById()方法当前不存在.
but obvisously, the UserManager.GetUserById() method does not currently exist.
您可以为此使用FindByIdAsync
:
var user = await _userManager.FindByIdAsync(model.userId);