簡體   English   中英

UserManager.CreateAsync。成功總是返回false

[英]UserManager.CreateAsync .Success always returns false

我試圖使用以下功能以編程方式將用戶添加到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);
    }
}

但是每當我調用this.UserManager.CreateAsyncresult.Succeed始終為false。 我已經檢查了AspNetUsers表,並且按預期方式,未添加用戶。

有什么想法可以找出問題所在以及如何解決嗎?

謝謝。

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);
}

您可以使用try catch來檢查實際錯誤。

   try{
        var result = await this.UserManager.CreateAsync(user, password);
    }
    catch(exception ex)
    {
     through ex;
    }

得到確切的錯誤后,最好刪除try catch塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM