Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating Roles in Asp.net Identity MVC 5

There is very little documentation about using the new Asp.net Identity Security Framework.

I have pieced together what I could to try and create a new Role and add a User to it. I tried the following: Add role in ASP.NET Identity

which looks like it may have gotten the info from this blog: building a simple to-do application with asp.net identity and associating users with to-does

I have added the code to a Database Initializer that is run whenever the model changes. It fails on the RoleExists function with the following error:

System.InvalidOperationException occurred in mscorlib.dll The entity type IdentityRole is not part of the model for the current context.

protected override void Seed (MyContext context) {     var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));      var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));      // Create Admin Role     string roleName = "Admins";     IdentityResult roleResult;      // Check to see if Role Exists, if not create it     if (!RoleManager.RoleExists(roleName))     {         roleResult = RoleManager.Create(new IdentityRole(roleName));     } } 

Any help is appreciated.

like image 918
colbyJax Avatar asked Oct 31 '13 02:10

colbyJax


People also ask

How will you implement role based authorization in MVC 5?

Choose MVC5 Controller with views, using Entity Framework and click "Add". After clicking on "Add", another window will appear. Choose Model Class and data context class and click "Add". The EmployeesController will be added under the Controllers folder with respective views.


1 Answers

Here we go:

var roleManager = new RoleManager<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));      if(!roleManager.RoleExists("ROLE NAME"))    {       var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();       role.Name = "ROLE NAME";       roleManager.Create(role);      } 
like image 81
Piotr Stulinski Avatar answered Oct 13 '22 05:10

Piotr Stulinski