Home > Net >  CRUD or managing user role in AspNetUserRoles MVC
CRUD or managing user role in AspNetUserRoles MVC

Time:12-28

I have a default identity in ASP.NET MVC 5, I can do CRUD on User and Role . But I don't have idea to do CRUD in table AspNetUserRoles. Because I want to make a user management with that table by matching UserId and RoleId . Here's my AplicationDbContext

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", false)
    {
    }

    public DbSet<ArrayDataVM> ArrayDatas { get; set; }
    public DbSet<Sender> Senders { get; set; }
    public DbSet<SMSDetail> SMSDetails { get; set; }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

And the AccountViewModel is still default that's too long too type here.

Can you give me the answer? thanks

CodePudding user response:

as suggested by @Georgy Tarasov in comments section, you can use UserManager and RoleManager for CRUD operations of users and roles and user roles. I have got an article which will help you.

Here is a quick code.

ApplicationDbContext context = new ApplicationDbContext();    
  
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));    
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context)); 

if (!roleManager.RoleExists("Admin"))    
{    
  var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();    
  role.Name = "Admin";    
  roleManager.Create(role); 
}

If you want to add user to this role, you can do by just adding userManager.AddToRole(userId, "Admin")

For full article, click here

CodePudding user response:

Simple example of getting roles, finding user, and assigning him to role Admin.

var context = new ApplicationDbContext();
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var roles = roleManager.Roles.ToList();

var user = await userManager.FindByEmailAsync("[email protected]");
userManager.AddToRoleAsync(user.Id, "Admin");
  • Related