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é? Juste le privateMethod () devrait avoir une authentification requise, Mais cela a été nécessaire aussi. P> PS: Je ne voudrais pas faire mon filtre d'autorisation personnalisé. P> [] 'S P> P>
5 Réponses :
Par défaut, il est impossible - si vous définissez [Autoriser] pour le contrôleur, alors seulement L'utilisateur authentifié fort> peut accéder à l'action. p>
ou p>
Vous pouvez essayer des décisions personnalisées: Stackoverflow . P>
Une solution est dans cet article: Sécurisation de votre application ASP.NET MVC 3 P>
L'article parle d'une approche de liste blanche où vous décorez des actions avec un attribut personnalisé allowanonymous em>. Cela nécessite que vous étendez autoriseattribute code> et la méthode code> de code> pour sauter des contrôles d'autorisation de allowanonymous em> -actions. (L'approche est créditée à Levi, un expert en sécurité sur l'équipe MVC.) P>
Vous pouvez utiliser [allowanonymous]
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 } }
Essayez d'ajouter des mots pour expliquer votre réponse. Les réponses du juste code sont normalement moins utiles.
Juste pour la référence future, il est maintenant disponible pour être effectué par le [allowanonymous] code> attribut ASP.NET MVC 4. P>
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!