web-dev-qa-db-fra.com

Owin claims - Ajoutez plusieurs ClaimTypes.Role

J'ai une application dans laquelle les utilisateurs peuvent se voir attribuer les rôles suivants:

  • SuperAdmin
  • Admin
  • Utilisateur

Un utilisateur peut avoir attribué deux rôles ou plus, par exemple. SuperAdmin et User. Mon application utilise des revendications, et je souhaite donc également authentifier les rôles d'utilisateur via des revendications. comme:

[Authorize(Roles="Admin")]

Malheureusement, je ne sais pas comment ajouter plusieurs rôles à mon ClaimTypes.Role. J'ai le code suivant:

var identity = new ClaimsIdentity(new[] {
                new Claim(ClaimTypes.Name, name),
                new Claim(ClaimTypes.Email, email),
                new Claim(ClaimTypes.Role, "User", "Admin", "SuperAdmin")
        },
            "ApplicationCookie");

Comme vous pouvez le voir, j'ai essayé d'ajouter plus de rôles pour illustrer, mais évidemment, cela se fait de manière incorrecte et ne fonctionne donc pas. Toute aide est donc très appréciée.

21
Jeppe Christensen

Une identité de revendications peut avoir plusieurs revendications avec le même Type de revendication. Cela permettra d'utiliser la méthode HasClaim pour vérifier si un rôle utilisateur spécifique est présent.

var identity = new ClaimsIdentity(new[] {
            new Claim(ClaimTypes.Name, name),
            new Claim(ClaimTypes.Email, email),
            new Claim(ClaimTypes.Role, "User"),
            new Claim(ClaimTypes.Role, "Admin"), 
            new Claim(ClaimTypes.Role,"SuperAdmin")
    },
        "ApplicationCookie");
44
Parameswar Rao