Asp.net Core按用户ID获取用户 [英] Asp.net Core Get User by User Id

查看:190
本文介绍了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);

这篇关于Asp.net Core按用户ID获取用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆