UserManager.CreateAsync .Success 总是返回 false

Thi*_*rry 1 c# asp.net-mvc asp.net-mvc-4

我正在尝试使用以下函数以编程方式将用户添加到我的 ASP.Net MVC 5.0 应用程序中的 AspNetUsers 表中:

private async Task AddUser(DataImportMember member)
{
    var user = new ApplicationUser
    {
        UserName = member.Email,
        Email = member.Email,
        UserType = UserType.IsMember
    };

    var password = RandomPassword.Generate();
    var result = await this.UserManager.CreateAsync(user, password);
    if (result.Succeeded)
    {
        await this.UserManager.AddToRoleAsync(user.Id, MyApp.IsMember);
    }
}
Run Code Online (Sandbox Code Playgroud)

但每当我打电话时this.UserManager.CreateAsyncresult.Succeed总是假的。我检查了 AspNetUsers 表,正如预期的那样,没有添加用户。

我有什么想法可以找出问题所在以及如何解决它?

谢谢。

Nko*_*osi 5

UserManager.CreateAsync返回一个IdentityResult,其中还包含操作不成功的任何错误。您应该检查结果错误消息以找出操作失败的原因。

var result = await this.UserManager.CreateAsync(user, password);
if (result.Succeeded) {
    await this.UserManager.AddToRoleAsync(user.Id, MyApp.IsMember);
} else {
    var errors = result.Errors;
    var message = string.Join(", ", errors);
    ModelState.AddModelError("", message);
}
Run Code Online (Sandbox Code Playgroud)