2009-05-24 8 views
0

Je souhaite rediriger les visiteurs vers une page de connexion avec des paramètres ajoutés (en fonction de l'action qu'ils effectuent) après l'échec de l'autorisation.ASP.NET MVC: paramètres personnalisés pour la page de connexion après autorisation

Voici un exemple de ce que je voudrais faire:

ASP.NET MVC - CustomeAuthorize filter action using an external website for loggin in the user

Cependant, puisque c'est un filtre personnalisé, je ne sais pas comment ou si je peux préciser les rôles comme dans l'habituel filtre d'autorisation. Je voudrais quelque chose comme:

[CustomAuthorization(Roles="Admins")] 

Merci!

Répondre

1

Vous pourriez hériter de la classe AuthorizeAttribute et passer outre OnAuthorize méthode comme ceci:

public override void OnAuthorization(AuthorizationContext filterContext) 
{ 
    base.OnAuthorization(filterContext); 
    if (!HttpContext.Current.User.IsAuthenticated) 
    { 
     filterContext.Result = new RedirectResult("target"); 

    } 
} 

Ensuite, vous pouvez utiliser ce filtre personnalisé comme AuthorizeAttribute. Qu'en est-il de simplement utiliser Request.Form dans votre classe d'autorisation personnalisée?

0

Avez-vous essayé de télécharger la source ASP.Net MVC et de jeter un coup d'œil au code de AuthorizeAttribute (dans AutorizeAttribute.cs)?

Il peut être judicieux de dériver votre CustomAutorization du AuthorizeAttribute existant - vérifiez-le et voyez si vous pouvez améliorer votre fonctionnalité requise.

0

C'est juste un appel POST après tout? Ne le rends pas plus difficile qu'il ne l'est en réalité.

Questions connexes