Как для пользователей, так и для ролей вы должны использовать связанные менеджеры: UserManager<TUser>
и RoleManager<TRole>
.Есть ряд вещей, которые должны произойти, кроме простой настойчивости, с которой менеджеры справляются, а добавление непосредственно в контекст - нет.Здесь, однако, вам нужно всего лишь UserManager<TUser>
, чтобы справиться со всем.
public class RegisterModel : PageModel
{
private readonly UserManager<IdentityUser> _userManager;
public RegisterModel(UserManager<IdentityUser> userManager)
{
_userManager = userManager;
}
...
}
Тогда:
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
await _userManager.CreateUserAsync(User);
await _userManager.AddToRoleAsync(User, "foo"); // where "foo" is the name of your role
_toastNotification.AddSuccessToastMessage("Utilizador Adicionado com sucesso");
return RedirectToPage("./Index");
}