¿Cómo controlo C# cuál es la función actual de los usuarios e imprimiéndola en la pantalla?Cómo comprobar cuál es el rol de los usuarios actuales
Gracias!
¿Cómo controlo C# cuál es la función actual de los usuarios e imprimiéndola en la pantalla?Cómo comprobar cuál es el rol de los usuarios actuales
Gracias!
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");
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.
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");
}
string[] userroles = Roles.GetRolesForUser(Page.User.Identity.Name);
foreach(var role in userroles)
{
Response.Write(role);
}
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>());
Qué espacio de nombres tiene que ser agregado para tener la clase "Roles"? – Ixtlan
@Ixtlan - usando System.Web.Security; – Avital