2011-01-31 25 views

Respuesta

15

Puede utilizar el método Roles.GetRolesForUser() para obtener todos los rols que pertenecen al usuario. úsalo así;

string[] rolesuserbelongto = Roles.GetRolesForUser(); 

tendrá todas las funciones en la matriz de cadenas.

incluso se puede pasar un nombre de usuario como un parámetro para obtener los papeles para ese usuario en particular como esto:

string[] rolesuserbelongto = Roles.GetRolesForUser("Shekhar_Pro"); 
+0

Qué espacio de nombres tiene que ser agregado para tener la clase "Roles"? – Ixtlan

+0

@Ixtlan - usando System.Web.Security; – Avital

0

No del todo seguro de que se trate.

que puede hacer:

this.User.IsInRole(); 
//loop and check whether the user is in your role. 

this correspondería a un page class, para que pueda escribir el código anterior sólo dentro de una página y this.User devuelve un IPrincipal.

6

El método más general es obtener un IPrinciple y luego llamar a IsInRole() en él. Cómo obtienes el Principio depende de tu entorno de tiempo de ejecución. Este ejemplo funciona bien para aplicaciones que se ejecutan bajo la cuenta del usuario.

Ejemplo:

static void PrintIsInAdministrators() 
    { 
     // There are many ways to get a principle... this is one. 
     System.Security.Principal.IPrincipal principle = System.Threading.Thread.CurrentPrincipal; 
     bool isInRole = principle.IsInRole("MyDomain\\MyRole"); 
     Console.WriteLine("I {0} an Admin", isInRole ? "am" : "am not"); 
    } 
0
string[] userroles = Roles.GetRolesForUser(Page.User.Identity.Name); 
foreach(var role in userroles) 
{ 
Response.Write(role); 
} 
0

Roles.GetRolesForUser(); me dio el error The Role Manager feature has not been enabled.

Si está utilizando ASP.NET Identity UserManager lo puede conseguir de esta manera:

var userManager = Request.GetOwinContext().GetUserManager<ApplicationUserManager>(); 

var roles = userManager.GetRoles(User.Identity.GetUserId()); 

Si ha cambiado clave para el usuario Guid siguiendo hacia, por ejemplo, utilizar este código:

var roles = userManager.GetRoles(User.Identity.GetUserId<int>()); 
Cuestiones relacionadas