2009-11-20 7 views
1

J'utilise asp.net mvc 1.0. Je sais asp.net mvc a quelques classes d'attribut telles que "AuthorizeAttribute", ActionFilter? et je pense qu'il y en a 2 de plus.Comment créer ma propre balise Attribute?

J'ai donc fait mon propre AuthorizeAttribute mais je ne suis pas sûr que ce soit le bon à utiliser à nouveau ou si j'ai même besoin d'hériter de ces classes intégrées.

Ce que j'essaie de faire c'est. Chaque fois qu'un utilisateur frappe une méthode d'action, je veux vérifier si la durée de l'abonnement a expiré. Si elle les a renvoyés à la page pour acheter un nouvel abonnement, laissez-les continuer leur chemin.

Je ne veux pas l'ajouter à mon AuthorizeAttribute personnalisé parce que j'ai un plan qui est gratuit et n'a donc pas besoin de cela. Donc je pensais avoir une autre sorte d'étiquette comme celle-ci et la mettre sous AuthorizeAttribute de cette façon si elles ne sont pas autorisées, elles sont attrapées par celui-là. S'ils sont abonnés, ils se font attraper par le nouveau.

Alors, comment devrais-je sortir pour construire ça?

Merci

Répondre

1
+0

Je suis confus maintenant le ActionFilter va-t-il toujours après le authroizetAttribute (à moins que vous ne surchargiez l'ordre.)? Ou est-ce juste l'ordre dans lequel ils entrent? Je pensais lire quelque part que l'autorisation va avant ActionFilter. – chobo2

1

Votre idée de construire une autre ActionFilterAttribute est correcte. Trick consiste à définir la propriété Order sur vos filtres et à s'assurer qu'ils se déclenchent dans le bon ordre.

+0

Vous avez des didacticiels sur la création d'un filtre ActionFilter. Je ne sais pas trop à ce sujet. Je pensais AuthorizeAtrributeFilter toujours aller en premier. – chobo2

+0

Vous n'êtes pas sûr des didacticiels, mais ce n'est pas trop difficile - faites juste une classe qui étend ActionFilterAttribute. Oui, l'autorisation globale doit être la première à être déclenchée. –

+0

Hmm Je ne sais pas si ActionFilter fonctionnera pour moi J'ai besoin de rediriger vers une autre action mais elle ne me le laissera pas car elle est nulle. – chobo2

Questions connexes