Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I assign a Role to an OpenId user for an ASP.NET MVC site?

I'm using OpenId in my ASP.NET MVC application. Works great :) Once i have the user's OpenId Identifier (once they have authenticated and returned to my site), i load up the users data (to get display name, etc).

From here, i also know their roles.

I'm not sure how to assign the role to the current Forms.Identity.

here's my code...

// Load User...
var user = GetUsers().ByOpenIdIdentifier("blahblahblahbl....");

// Here means we have a user AND all the roles, for that user.

// Forms Authenticate and Redirect.
FormsAuthentication.SetAuthCookie(user.DisplayName, true);
return RedirectToAction("Index", "Home");

How can i change this code so the authenticated user also has their roles assigned?

Update

I stumbled across this web post about making a custom Authorize attribute. Notice how they are checking the logged in users role that exists in the session? Also, the roles are an enumeration :) This is pretty funky, if u ask me :) Nice and simple.

Thoughts (compared to a full on blown RoleProvider class?)

like image 890
Pure.Krome Avatar asked Jun 02 '09 13:06

Pure.Krome


People also ask

How can manage user role in ASP NET MVC?

Create Roles in Asp.Net MVC Membership To create Roles, first, we need to add a Model with the name Role, and we are going to Add a Role Model inside Account Models, which is inside Models Folder. After Creating the Model, now let's add Action Method with Name “RoleCreate” for both Http Request in Account Controller.


1 Answers

You'll need to write your own RoleProvider and hook it up in the web.config file. Your RoleProvider will take the user's name and figure out their role(s). IPrincipal.IsInRole uses the configured RoleProvider to determine role membership.

like image 75
tvanfosson Avatar answered Oct 11 '22 08:10

tvanfosson