在控制器中获取 ApplicationUser 对象

Posted

技术标签:

【中文标题】在控制器中获取 ApplicationUser 对象【英文标题】:Getting the ApplicationUser object in a controller 【发布时间】:2014-09-03 09:09:48 【问题描述】:

我正在编写一个 C# MVC5 互联网应用程序,在我创建的控制器中获取 ApplicationUser 对象时遇到了一些问题。

这是我的代码:

var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
ApplicationUser user = userManager.FindByNameAsync(User.Identity.GetUserId()).Result;

当我尝试运行此代码时,当用户登录时,我得到ApplicationUser 用户的空对象。

我可以帮忙吗?

提前致谢

【问题讨论】:

【参考方案1】:

FindByNameAsync() 需要用户名,但您传递的是用户 ID。要么传递用户名...

ApplicationUser user = userManager.FindByNameAsync(User.Identity.GetUserName()).Result;

或者使用FindByIdAsync()方法...

ApplicationUser user = userManager.FindByIdAsync(User.Identity.GetUserId()).Result;

【讨论】:

以上是关于在控制器中获取 ApplicationUser 对象的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 5 - 身份。如何获取当前的ApplicationUser

从 asp.net 核心标识中获取 applicationuser 的属性

ASP.NET MVC 如何使用 ApplicationUser 和其他域类之间的多对多关系

Identity 2.0.0 中的 ApplicationUser 和 ApplicationRole 导航属性

无法为“ApplicationUser”创建 DbSet,因为此类型未包含在上下文模型中

从 Model .net 核心引用 ApplicationUser