I can assign a role at Registration level e.g Visitor, but how do I manage to change that role from User/Edit page? Also, how to add all the roles required to aspnetrole and then assign to users as needed?
Model
- public class UserDataClass : IdentityUser
- {
- public string UserOrganization { get; set; }
- public string UserStatus { get; set; }
- public UserRoleList URole { get; set; }
- public ICollection<AppUserRole> UserRoles { get; set; }
-
- }
-
- public class UserRoleClass : IdentityRole
- {
- public string UsRole { get; set; }
- }
-
- public class AppUserRole : IdentityUserRole<string>
- {
- public virtual UserDataClass UsName { get; set; }
- public virtual UserRoleClass UsRole { get; set; }
- }
-
- public enum UserRoleList
- {
- Admin = 0,
- UserAdmin = 1,
- Management = 2,
- Visitor = 3
- }
Registration - assign Visitor (working)
- if (!await _roleManager.RoleExistsAsync("Visitor"))
- {
- var role = new IdentityRole("Visitor");
- var res = await _roleManager.CreateAsync(role);
- if (res.Succeeded)
- {
- await _userManager.AddToRoleAsync(user, "Visitor");
- await _signInManager.SignInAsync(user, isPersistent: false);
- _logger.LogInformation("A new account was created");
- }
- }
startup
- services.AddIdentity<UserDataClass, UserRoleClass>(options => options.SignIn.RequireConfirmedAccount = true)
- .AddDefaultUI()
- .AddRoles<UserRoleClass>()