Je souhaite utiliser [Authorize (Roles = "Admin")] les balises sur mes méthodes de contrôleur.Asp MVC [Autoriser] pour renvoyer un message au lieu d'un message Get
Si un utilisateur n'est pas un administrateur, je voudrais retourner cet utilisateur à mon écran de connexion. Le comportement par défaut de renvoi de l'utilisateur à ma page de connexion est de rediriger mon utilisateur vers "Compte/Connexion" à l'aide d'une URL Get.
Le problème est que les sous-pages de mon site Web sont toutes les vues partielles actualisées par les appels Ajax, y compris mon écran de connexion.
Donc ma question est: Est-il possible de modifier la classe ci-dessous pour retourner une redirection de poste au lieu d'une redirection get?
public class AjaxAuthorizeAttribute : AuthorizeAttribute
{
override public void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
// Only do something if we are about to give a HttpUnauthorizedResult and we are in AJAX mode.
if (filterContext.Result is HttpUnauthorizedResult && filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.Result = new RedirectResult("../Account/Login");
}
}
}
Vous pouvez toujours utiliser l'attribut AcceptVerbs: [AcceptVerbs (HttpVerbs.Get | HttpVerbs.Post)] – keithm