J'ai défini un attribut d'autorisation personnalisé. Afin d'éviter l'attribut liste ci-dessus chaque ActionResult dans mon contrôleur (s), j'ai ajouté l'attribut à mon global.asax comme suit:Y a-t-il un moyen de RegisterGlobalFilters, mais exclure les requêtes JsonResult?
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new MyAuthorizeAttribute());
}
Une conséquence non intentionnelle de cela, cependant, est que mon autorisation le code est appelé pendant tous mes appels JsonResult. Y a-t-il un moyen pour que MyAuthorizeAttribute soit invoqué UNIQUEMENT sur les appels ActionResult et NON sur les appels JsonResult? J'utilise MVC3.
Je renvoie spécifiquement JsonResult avec certaines de mes méthodes de contrôleur. – WEFX
Je ne sais pas comment identifier le type de retour de l'action (en plus de la réflexion qui sera coûteuse) et de toute façon, vous n'allez pas éviter l'exécution du code du filtre, même s'il ne fait rien par la suite. Mais mon exemple de code peut toujours fonctionner pour vous - si quelque chose est JsonResult, le filtre ne fait rien. –