ASP.NET MVC Autoriser l'utilisateur avec de nombreux rôles
J'ai besoin d'autoriser un Contrôleur dans mon ASP.NET MVC de l'application pour les utilisateurs qui ont deux rôles.
Je suis l'aide d'Autoriser l'attribut comme ceci:
[Autoriser(Rôles = "Producteur, De L'Éditeur")]
Mais cela permet aux Producteurs et Éditeurs du contrôleur. Je veux uniquement pour permettre aux utilisateurs d'avoir les deux rôles, et pas seulement l'un d'entre eux.
Comment pourrais-je arriver à cela?
double possible de en Utilisant MVC est AuthorizeAttribute avec plusieurs groupes de Rôles?
Si vous voulez savoir la raison de ce qui se passe, c'est parce que vous avez un défaut de conception. Je ne suis pas sûr au sujet de votre contexte, mais juste d'y réfléchir. Il ya certaines mesures qui peuvent être prises. Vous souhaitez que l'action ne soit prise par quelqu'un qui est à la fois un producteur et un éditeur. Je ne peux pas imaginer ce que c'est. Ce que je vous suggère de le faire, c'est de faire un nouveau rôle d'Administrateur (?) ou si cela semble stupide, alors je voudrais connaître le contexte (qu'est-Ce que l'action que vous essayez d'atteindre?)
Si vous voulez savoir la raison de ce qui se passe, c'est parce que vous avez un défaut de conception. Je ne suis pas sûr au sujet de votre contexte, mais juste d'y réfléchir. Il ya certaines mesures qui peuvent être prises. Vous souhaitez que l'action ne soit prise par quelqu'un qui est à la fois un producteur et un éditeur. Je ne peux pas imaginer ce que c'est. Ce que je vous suggère de le faire, c'est de faire un nouveau rôle d'Administrateur (?) ou si cela semble stupide, alors je voudrais connaître le contexte (qu'est-Ce que l'action que vous essayez d'atteindre?)
OriginalL'auteur Herno | 2014-07-14
Vous devez vous connecter pour publier un commentaire.
Que la question des états, lorsque plusieurs rôles sont donnés dans une unique
Authorize()
appel qu'ils sont appliqués de telle sorte que si l'utilisateur appartient à tout des rôles énumérés ils auront accès; comme une logiqueOR
opérateur.Sinon, pour atteindre l'effet d'une logique
AND
l'opérateur, vous pouvez appliquer laAuthorize
attribut plusieurs fois. Par exemple..Pour l'exemple ci-dessus, l'organe d'action n'est accessible que pour les utilisateurs qui appartiennent à la
Producer
et laEditor
rôles.Rudi points dans les commentaires ce qui vous permet de créer certains raisonnablement complexe de règles d'accès sans avoir à mettre en œuvre une coutume
AuthorizeAttribute
. Par exemple, dans le code ci-dessous les utilisateurs peuvent exécuter l'action si elles sont à la fois: a) dans leEnabled
rôle et b) dans leEditor
ouAdmin
rôles.Je ne suis pas sûr de la version introduit le présent, mais il fonctionne dans au moins MVC 4 et 5.
[Authorize(Roles = "EitherThis,OrThis")][Authorize(Roles="ButAlwaysThis")]
OriginalL'auteur Molomby
Vous devriez faire de votre personnalisé
AuthorizeAttribute
DÉMO :
OriginalL'auteur Kosmog