Jak sprawdzić C#, jaka jest rola bieżącego użytkownika, i wydrukować go na ekranie.Jak sprawdzić, jaka jest rola aktualnego użytkownika?
Dzięki!
Jak sprawdzić C#, jaka jest rola bieżącego użytkownika, i wydrukować go na ekranie.Jak sprawdzić, jaka jest rola aktualnego użytkownika?
Dzięki!
Możesz użyć metody Roles.GetRolesForUser()
, aby uzyskać wszystkie role użytkowników. używaj go w ten sposób;
string[] rolesuserbelongto = Roles.GetRolesForUser();
będziesz mieć wszystkie role w tablicy ciągów.
można nawet przekazać nazwę użytkownika jako parametr dostać role dla danego użytkownika w taki sposób:
string[] rolesuserbelongto = Roles.GetRolesForUser("Shekhar_Pro");
Nie całkowicie pewny, że pytanie.
można zrobić:
this.User.IsInRole();
//loop and check whether the user is in your role.
this
by odpowiadać page class, więc można napisać powyższy kod tylko wewnątrz strony i this.User
zwraca IPrincipal.
Najbardziej ogólną metodą jest uzyskanie IPrinciple, a następnie wywołanie IsInRole() na nim. Sposób, w jaki zasada jest zależna od środowiska wykonawczego. Ten przykład działa dobrze w przypadku aplikacji działających na koncie użytkownika.
Przykład:
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();
dał mi błąd The Role Manager feature has not been enabled
.
Jeśli używasz ASP.NET Identity UserManager
można dostać to tak:
var userManager = Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
var roles = userManager.GetRoles(User.Identity.GetUserId());
Jeśli zmieniono klucz dla użytkownika z GUID int na przykład użyć tego kodu:
var roles = userManager.GetRoles(User.Identity.GetUserId<int>());
Co nazw musi zostać dodany, aby mieć klasę "Role"? – Ixtlan
@Ixtlan - przy użyciu System.Web.Security; – Avital