Проблема с ролью пользователя ASP.NET 2.2 - PullRequest
1 голос
/ 14 октября 2019

У меня проблема с ролью пользователя.

В моем приложении, когда пользователь регистрируется, отправляется электронное письмо с подтверждением, которое затем ссылается на внутреннюю страницу приложения, которая позволяет процессу регистрациибыть завершено.

Метод вызываемого контроллера распознает через эти функции вызывающего пользователя:

ApplicationUser CurrentUser = await GetCurrentUserAsync();

public Task<ApplicationUser> GetCurrentUserAsync() => _userManager.GetUserAsync(_httpContextAccessor.HttpContext.User);

Пользователь имеет роль «Utente», но не распознается системой. Чтобы он был распознан, мне нужно снова войти в систему.

Моя проблема в том, что форма регистрации пользователя вставляет ее в группу «Пользователи» и отправляет подтверждение по электронной почте пользователю. Пользователь нажимает на ссылку на этом электронном письме, завершает регистрацию и затем должен иметь возможность использовать приложение без необходимости повторного входа в систему.

Я думаю, что могу решить проблему с помощью решения, подобного следующему:

добавить SignInManager.SignIn (пользователь, ложь, ложь);(если у вас нет пользователя, var user = UserManager.FindById (User.Identity.GetUserId ())) перед RedirectToAction ("Index", "Members");

Может кто-нибудь сказать, каксделать это в ASP.NET CORE 2.2?

Спасибо.

1 Ответ

1 голос
/ 15 октября 2019

Я решил проблему обновления имени пользователя после назначения пользователя на роль следующим образом:

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

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