Как вы получаете доступ к IdentityUser, чтобы изменить свою роль? - PullRequest
0 голосов
/ 29 мая 2019

Я хочу изменить роль пользователя в моем приложении.

Я использовал Dependency Injection для доступа к UserManager _usermanager в моем контроллере.Чтобы изменить роль, я должен вызвать _usermanager.AddToRoleAsync (пользователь IdentityUser, строковая роль), но я не могу определить местонахождение объекта IdentityUser.

    [HttpPost]
    public async Task<IActionResult> BewerkGebruiker(int id , ... )
    {
        Gebruiker g;
        using (var context =  new UTILcontext())
        {
            _userManager.AddToRoleAsync(<<what do i put here?>>),Rol);
            _manager.UpdateGebruiker(g);
            return RedirectToAction("Gebruikers");
        };

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Я не знал о свойстве _userManager.Users.Таким образом, я могу найти правильного IdentityUser для заполнения AddToRoleAsync с помощью.

Проблема решена!

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

Нечто подобное должно работать.AppUser - это класс, производный от Microsoft.AspNetCore.Identity.IdentityUser, который обычно находится в каталоге Models.

[HttpPost]
public async Task<IActionResult> EditUser(int userId, string roleName, ...)
{
     AppUser user = await userManager.FindByIdAsync(model.Id);

     if (user != null)
         IdentityResult result = await userManager.AddToRoleAsync(user, roleName);
    . . . 
}
...