ASP.NET Identity在Manage View中检索和编辑用户数据?

时间:2016-04-22 13:32:03

标签: c# asp.net asp.net-mvc asp.net-identity

所以我有一个ASP.NET MVC 5应用程序。登录时,您可以点击“Hello ,!”链接。并且您可以看到管理视图,它是模板生成的默认页面,它使用IndexViewModel。

我成功地通过添加

显示用户的电子邮件
public string Email { get; set; }

在IndexViewModel中,然后在ManageController中

var model = new IndexViewModel          
{
    HasPassword = HasPassword(),
    PhoneNumber = await UserManager.GetPhoneNumberAsync(userId),
    TwoFactor = await UserManager.GetTwoFactorEnabledAsync(userId),
    Logins = await UserManager.GetLoginsAsync(userId),
    BrowserRemembered = await  AuthenticationManager.TwoFactorBrowserRememberedAsync(userId),
    Email = await UserManager.GetEmailAsync(userId)           
};

然而,这很容易,因为UserManager已经有一个名为GetEmailAsync的任务。如何从这样的数据库中检索数据,但是对于我添加的其他字段? (用户由RegisterStudentViewModel创建) 我试图创建另一个任务,但它没有用。我该如何解决这个问题?我希望他们能够看到他们的详细信息甚至编辑它们(比如更改已经存在的电话号码)

1 个答案:

答案 0 :(得分:4)

您可以按如下方式加载整个用户实体:

var user = UserManager.Users.FirstOrDefault(u => u.Id == userId);

从那里,您可以随心所欲地为用户做好准备。

或者,使用FindById(userId)

var user = UserManager.FindById(userId);