J'utilise un filtre d'autorisation personnalisé sur mes contrôleurs ASP.NET MVC qui redirige l'utilisateur vers une URL autre que l'écran de connexion s'ils échouent à l'autorisation sur une action particulière.Comment gérez-vous l'autorisation sur les actions qui renvoient des résultats autres que ViewResult?
Ceci est correct pour les actions qui retournent des vues, mais beaucoup de mes actions renvoient d'autres types de résultats tels que PartialResult ou JsonResult.
Mon filtre actuel ressemble à ceci:
< AuthorizeWithRedirect (Rôles: = "ServerAccess", Contrôleur: = "Home", Action: = "non autorisée") >
Cela indique Si l'utilisateur n'est pas dans le rôle ServerAccess, il doit être redirigé vers/Home/Unauthorized/
Je suis curieux de savoir comment d'autres personnes s'en occupent? Cela semble particulièrement problématique lorsque vous considérez le nombre d'actions qui sont destinées à être appelées uniquement par les appels AJAX du script côté client. Comment l'action/Home/Unauthorized/peut-elle savoir si l'appelant était destiné à recevoir une vue, partialview, json, content, etc?
La première option est la route que j'ai actuellement prise, avec une action de contrôleur pour chaque type de ActionResult, c'est-à-dire UnauthorisedPartial, UnauthorisedJSON. Cela me permet d'écrire une page standard et de la renvoyer à n'importe quel appelant. – Nick