Obtenir Nomaction, ControllerName et AreaName et de le transmettre ActionFilter Attribut
- Je utiliser un custom AuthorizationFilter comme les suivants:
public class ActionAuthorizeAttribute : AuthorizeAttribute {
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext) {
if(!httpContext.User.Identity.IsAuthenticated)
return false;
if(IsUserExcluded())
return false;
else
return IsRoleAuthorize(httpContext);
}
}
J'utilise ce filtre en haut de chaque action que j'ai, et pour l'enregistrement Est Autorisé, a besoin d'Action Nom, le Nom du Contrôleur, Et le Nom de la Zone. Donc, il y a un moyen d'obtenir ce noms dans AuthorizeCore()
méthode comme l'utilisation System.Web.HttpContextBase
? si la réponse est Non, alors comment puis-je obtenir ces noms et le transmettre à l'attribut, évidemment, je ne veux pas ajouter de chaque nom à la main, en fait quelque chose commeViewContext.RouteData.Values["Controller"]
dans les contrôleurs:
[ActionAuthorize(actionName=Action, controller=ControllerName, area=AreaName)]
public ActionResult Index() {
return View();
}
Ce que quelqu'un a une idée à ce sujet?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez récupérer de la RouteData:
HttpContext.Current
dans ma carrière.Face à la même question, il y a un moment et ma solution est la suivante:
Définir 2 attributs dans votre ActionAuthorizeAttribute classe par exemple
Tandis que l'annotation d'action du contrôleur de les spécifier par exemple
L'obtention de la région ne fonctionnera pas si vous êtes sur un filtre personnalisé
la prochaine aura du travail pour obtenir une surface