1

J'ai créé plusieurs stratégies d'autorisation, chacune avec 1 réclamation en elle, en faisant un chèque de rôle, comme ceci:Politique d'autorisation avec les revendications multiples

options.AddPolicy("SuperAdminPolicy", policy => policy.RequireClaim(ClaimTypes.Role, "SuperAdmin")); 

Que tout fonctionne très bien.

Cependant, je suis maintenant au point où je veux vérifier 2 types différents de revendications, par ex. Je veux m'assurer que l'utilisateur a une revendication de rôle spécifique (comme ci-dessus), mais je veux aussi vérifier la valeur d'une revendication complètement différente (comme le prénom). Pour clarifier, je veux dire quelque chose comme "l'utilisateur doit être dans le rôle 'x' et doit avoir une valeur de réclamation de prénom de 'bob'".

Je n'arrive pas à comprendre comment réaliser cela (et je suis sûr que c'est probablement assez simple).

Quelqu'un peut-il me diriger dans la bonne direction s'il vous plaît?

Merci.

Répondre

3

Nous pouvons effectivement chaîner le RequireClaim comme ceci.

services.AddAuthorization(option => { 

      option.AddPolicy("SuperAdmin policy", 
      policy => policy.RequireClaim(ClaimType.Role,"SuperAdmin") 
           .RequireClaim(ClaimType.Name,"Bob")); 
          });