在控制器中获取ApplicationUser对象

时间:2014-07-13 05:22:58

标签: c# asp.net-mvc-5 asp.net-identity findname usermanager

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

这是我的代码:

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

当我尝试运行此代码时,当用户登录时,我将为ApplicationUser用户获取一个空对象。

我可以请一点帮忙吗?

提前致谢

1 个答案:

答案 0 :(得分:3)

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

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

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

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