Usermanager.RemoveFromRoleAsyncIsnotWorkingProperly in .net core 5.0

94 Views Asked by At

I am Trying To Remove role For User It Not Work in .net 5.0

 var roles = await userManager.GetRolesAsync(user);
 var result = await userManager.RemoveFromRolesAsync(user, roles);

with both Development and Production server

1

There are 1 best solutions below

4
On

How do you add user to a role? I give you a workaround example below.

 public class HomeController : Controller
{
    private readonly UserManager<IdentityUser> _userManager;
    private readonly SignInManager<IdentityUser> _signInManager;
    RoleManager<IdentityRole> roleManager;

    public HomeController(
        UserManager<IdentityUser> userManager,
        SignInManager<IdentityUser> signInManager,
        RoleManager<IdentityRole> _roleManager  )
    {
        _userManager = userManager;
        _signInManager = signInManager;
        roleManager = _roleManager;
    }
    [HttpPost]
    public async Task<IActionResult> Register(string username, string password)
    {

        var user = new IdentityUser
        {
            UserName = username,
            Email = "",
        };

        roleManager.CreateAsync(new IdentityRole("admin"));
        var result = await _userManager.CreateAsync(user, password);
        
        if (result.Succeeded)
        {
            var role = _userManager.AddToRoleAsync(user, "admin");
            var roles = _userManager.GetRolesAsync(user).Result;
            
            var resu = await _userManager.RemoveFromRolesAsync(user, roles);
            var roles2 = _userManager.GetRolesAsync(user).Result;
            return Redirect("Secret");
        }

        return RedirectToAction("Index");
    }
}

Before:

enter image description here

After:

enter image description here