web-dev-qa-db-fra.com

ASP.NET Identity 2.0 vérifie si l'utilisateur actuel est dans le rôle IsInRole

Avec ASP.NET Identity 2.0, comment vérifiez-vous si l'utilisateur actuellement connecté est dans un rôle? J'utilise ce qui suit, mais je me demande s'il y a quelque chose de plus efficace.

var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new DbContext()));
var au = um.FindByEmail(Context.User.Identity.GetUserName());
var inrole = um.IsInRole(au.Id, "Admin");

if (inrole)
{
}
17
user3530155

La manière correcte dans ASP Identity est aussi simple que

User.IsInRole("rolename");
34
bluee

En supposant que vous êtes dans ASP.NET, c'est assez simple:

if (!Roles.IsUserInRole(User.Identity.Name, "Administrators"))
{
  return "You are not authorized to access this page.";
)

(de http://msdn.Microsoft.com/en-us/library/4z6b5d42%28v=vs.110%29.aspx )

7
Robert Goldwein

Vous pouvez obtenir l'ID utilisateur de l'identité plutôt que d'avoir à rechercher l'utilisateur dans la base de données ...

var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new DbContext()));
var inrole = um.IsInRole(Context.User.Identity.GetUserId(), "Admin");
6
Dougal

cela a fonctionné pour moi j'espère que cela aide ...

If HttpContext.Current.User.IsInRole("admin") Then
        adminmnu.Visible = True
    End If
3
ookie