10
votes

Appliquer AutorizeAttribute à une classe de contrôleur et à l'action simultanément

Y a-t-il un moyen de faire une intitulée [AUTORIZE] ATTIBUT être ignoré dans une action dans une classe de contrôleur qui a un attribut autorisé? XXX

Juste le privateMethod () devrait avoir une authentification requise, Mais cela a été nécessaire aussi.

PS: Je ne voudrais pas faire mon filtre d'autorisation personnalisé.

[] 'S


2 commentaires

Essayez-vous d'ignorer l'autorisation qui est sur la classe MyController pour l'action PublicMethod ou privatemethod?


Il est d'ignorer pour l'action PublicMethod. J'ai écrit quelque chose de mal, je suis désolé, c'est corrigé maintenant!


5 Réponses :


4
votes

Par défaut, il est impossible - si vous définissez [Autoriser] pour le contrôleur, alors seulement L'utilisateur authentifié peut accéder à l'action.

ou

Vous pouvez essayer des décisions personnalisées: Stackoverflow .


0 commentaires

3
votes

Une solution est dans cet article: Sécurisation de votre application ASP.NET MVC 3

L'article parle d'une approche de liste blanche où vous décorez des actions avec un attribut personnalisé allowanonymous . Cela nécessite que vous étendez autoriseattribute et la méthode de pour sauter des contrôles d'autorisation de allowanonymous -actions. (L'approche est créditée à Levi, un expert en sécurité sur l'équipe MVC.)


0 commentaires

16
votes

Vous pouvez utiliser [allowanonymous] xxx


0 commentaires

0
votes
    public class MyController : Controller
    {
       [Authorize] //it will only work for the following action
       public ActionResult PublicMethod()
       {
       //some code
       }

       public ActionResult PrivateMethod()  //[Authorize] will not work for this action
       {
       //some code
       }
    }

1 commentaires

Essayez d'ajouter des mots pour expliquer votre réponse. Les réponses du juste code sont normalement moins utiles.



0
votes

Juste pour la référence future, il est maintenant disponible pour être effectué par le [allowanonymous] attribut ASP.NET MVC 4.

Plus d'infos


0 commentaires