2010-09-07 6 views
2

Supposons que nous ayons deux groupes "Admins" et "Utilisateurs". Les administrateurs peuvent utiliser n'importe quelle opération disponible dans le service, mais les utilisateurs peuvent seulement utiliser certains d'entre eux.Autorisation des services RIA WCF

Dois-je ajouter le groupe "Admins" à chaque opération ou si je viens de l'écrire en haut de la classe fera l'affaire?

Merci.

Répondre

4

Plusieurs attributs RequiresRole sont combinés avec un ET alors que plusieurs rôles passés à un seul attribut sont OR'd. Dans votre cas, vous aurez besoin de OU les attributs ("Utilisateur" ou "Admin") de sorte que vous devrez appliquer "Admin" à chaque méthode.

// "Admin" & & "Utilisateur", ce qui équivaut à utiliser un attribut class pour "Admin"

[RequiresRole ("Admin"), RequiresRole ("Utilisateur")]

// "Admin" || "Utilisateur"

[RequiresRole ("Admin", "Utilisateur")]

+0

Merci pour votre réponse. Si j'affecte chaque utilisateur s'il est administrateur ou non, je n'aurai pas à appliquer l'attribut de rôle d'utilisateur à chaque opération. Droite? – mrtaikandi

+0

Eh bien ... je ne pense pas. Vous pourriez être en mesure d'appliquer "Utilisateur" au niveau du service de domaine (vous devez être un utilisateur pour accéder à n'importe quoi), puis appliquer sélectivement "Admin" sur des opérations individuelles (vous devez être un utilisateur et un administrateur pour utiliser ces méthodes). Je ne pense pas qu'il existe un bon moyen de dire "vous devez être un administrateur pour utiliser ces méthodes à moins que je ne spécifie autre chose". –

0

J'ai eu le même problème. Malheureusement, vous devez définir les rôles pour chaque méthode. Vous pouvez également utiliser saf-framework pour implémenter l'autorisation d'accès. Sinon, je vous suggère de remplacer la méthode BeforeSubmit() de votre service de domaine et de vérifier l'accès de vos objets pour éviter les attributs excessifs sur chaque méthode. Par exemple, vous voudrez peut-être changer votre stratégie d'accès et vous ne voulez pas passer par toutes les méthodes et le faire.

Questions connexes