2009-12-07 2 views
1

Les services RIA vous permettent d'ajouter un attribut à une méthode de service de domaine telle que: RequiresRole ("Admin"). Cela vérifiera automatiquement si l'utilisateur appelant cette méthode a la sécurité correcte pour le faire. Je voudrais faire quelque chose de similaire pour une propriété sur une entité. Par exemple, seuls les utilisateurs du rôle "Gestionnaire" sont autorisés à modifier la propriété "Taux", mais tout utilisateur peut modifier la propriété "Commentaires". Est-ce possible?Pouvez-vous ajouter une sécurité à une entité Propriété avec des services RIA?

Répondre

0

Vous pouvez le faire en utilisant un Custom Validation attribute. Vous pouvez créer un attribut tel que RequiresManagerRole qui vérifie si l'utilisateur est dans le rôle de gestionnaire et n'autorise pas la modification si l'utilisateur ne l'était pas.

Cela peut ne pas être une très bonne expérience pour l'utilisateur. Vous voudrez probablement lier la propriété readonly dans le formulaire pour déterminer si la propriété était modifiable. Vous pourriez être en mesure de le faire avec un IValueConverter et dans votre convertisseur de valeur vérifier le rôle de l'utilisateur pour déterminer s'il est en lecture seule. Je pense que Brad a vu cette question et wrote this blog post to address it. Cela devrait répondre à ce que vous voulez faire mais adopte une approche différente.

1

Une meilleure façon de prendre en charge la sécurité des propriétés est de surcharger la méthode DomainService.Query, de cette façon vous éviterez de charger beaucoup de données excessives. Blogué plus à ce sujet here.