2010-10-25 42 views
1

Je dois rediriger un utilisateur authentifié vers une page spécifique s'il ne répond pas à une condition.ASP.Net MVC: comment rediriger un utilisateur authentifié à partir de n'importe quelle page s'il ne répond pas à une condition

J'ai implémenté un contrôleur de base dont tous les contrôleurs héritent. Dans son remplacement OnActionExecuting, je prévois d'effectuer mon test pour la condition et rediriger vers l'action spécifique si la condition n'est pas remplie.

Est-ce la manière la plus sensée d'effectuer cette opération?

Répondre

0

Vous pouvez le faire de cette façon, si vous avez l'intention de chaque action étant projeté ou vous pouvez emprunter la voie de l'utilisation custom Action Filters a la le filtre HandleError. Avec les filtres, vous avez accès à l'intégralité du flux de requêtes et vous pouvez effectuer différentes actions. Vous pouvez également empiler des filtres et même les ordonner afin qu'ils soient exécutés dans un ordre spécifique. Les filtres d'action peuvent également être appliqués au niveau de la classe, ce qui signifie qu'ils seront appliqués à chaque action pour vous.

+0

Je peux voir les avantages des attributs de filtres d'actions personnalisées, mais comment puis-je utiliser RedirectToAction à l'intérieur du remplacement OnActionExecuting de l'ActionFilterAttribute? – Pones

+0

filterContext.HttpContext.Response.Redirect (errorUrl, true); Est-ce ce que vous demandez? –

+0

Finalement c'est ce que j'ai fini par faire, merci. – Pones