0
ユーザーを正常に作成した後にロールにユーザーを追加しようとしています。アイデンティティusermanagerがロールを見つけることができません
public async Task<IActionResult> Register(RegisterViewModel model, string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
if (!ModelState.IsValid) return View(model);
var user = new ApplicationUser
{
UserName = model.PhoneNumber,
PhoneNumber = model.PhoneNumber,
NationalId = model.NationalId,
FullName = model.FullName
};
var result = await _userManager.CreateAsync(user, model.NationalId);
if (result.Succeeded)
{
var res = await _userManager.AddToRoleAsync(user, "Admin");
await _signInManager.SignInAsync(user, false);
_logger.LogInformation(3, "Applicant created a new account with password.");
return RedirectToLocal(returnUrl);
}
AddErrors(result);
// If we got this far, something failed, redisplay form
return View(model);
}
ただし、このエラーが発生します。
要求の処理中に未処理の例外が発生しました。
InvalidOperationException:ロールADMINが存在しません。
更新: 私は
var myrole = await _roleManager.FindByNameAsync("Admin");
と呼ばれ、それがnullを返さ。私は
var roles = _roleManager.Roles
を検査するとき、私は「管理者」私はシード方法で問題を発見した
ユーザーを追加する前に 'IdentityRole'を作成しましたか? – tmg
確かに、シードメソッドでロールが作成され、データベースに存在することが確認されました – Osama