[英]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.CreateAsync
, result.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.