У меня возникают проблемы с назначением роли пользователю, когда пользователь создается посредством регистрации - PullRequest
1 голос
/ 15 июня 2019

Я пытаюсь создать регистрацию пользователя с помощью Identity. На странице регистрации он запрашивает имя, фамилию, адрес электронной почты, другую основную информацию, а также несколько конкретных сведений о моем проекте. Затем у меня есть выпадающее меню со всеми ролями, которые я создал, которые являются опциями для этого пользователя. Я знаю роли в моей работе с образцами данных, но не работаю, когда создается пользователь. Когда я создаю пользователя и назначаю ему роль, он завершает создание пользователя без каких-либо ошибок, но не имеет возможности просматривать или выполнять какие-либо действия, которые будет выполнять роль. Например, у меня есть роль с именем Admin, которая может просматривать и создавать пользователей. Если бы я создал нового пользователя, у которого была бы роль администратора, в моем приложении сейчас все, что он делает, - это создает пользователя, и все.

Я полагаю, что моя проблема в файле Register.cshtml.cs, в методе OnPostAsync. Это строка кода, которую я пытаюсь назначить пользователю на роль:

await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                await _signInManager.SignInAsync(user, isPersistent: false);

                await _userManager.AddToRoleAsync(user, "Member");

                return LocalRedirect(returnUrl);
            }
            foreach (var error in result.Errors)
            {
                ModelState.AddModelError(string.Empty, error.Description);
            }

Я ожидаю увидеть вверху панель навигации со ссылками на различные задачи администратора, такие как «Создание нового пользователя» и «Просмотр пользователей», но я получаю пустую панель навигации вверху без каких-либо функций. (Извините, что задал вопрос в StackOverflow и попытался добавить снимок экрана с результатами, чтобы описать мою проблему, но не могу заставить его работать)

1 Ответ

0 голосов
/ 15 июня 2019

Я использую это, и оно отлично работает


IdentityResult addUserResult = await _userManager.CreateAsync(user,createUserModel.Password);
IdentityResult addResult = await _userManager.AddToRoleAsync(user, createUserModel.RoleName);

надеюсь, что оно будет работать для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...