Autorisieren eines Benutzers je nach den Namen der Aktion

Ich habe viele Controller mit vielen Aktionen. Jede Aktion hat eine eigene Rolle ( Role name = ControllerName.actionName ).

In früheren Versionen die ich testen konnte, ob der aktuelle Benutzer kann der Zugang auf eine Aktion oder ein nicht mit einer "generischen" AuthorizeAttribute :

public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
{
    string currentAction = actionContext.ActionDescriptor.ActionName;
    string currentController = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName;
    Roles = (currentController + "." + currentAction).ToLower();
    base.OnAuthorization(actionContext);
}

Mit der version asp.net 5, ich habe festgestellt, dass ich die Anforderungen ( Wie erstellen Sie eine benutzerdefinierte AuthorizeAttribute in ASP.NET Core? ). Das problem ist, dass die AuthorizationContext nicht geben uns die Informationen über die Aktion, die der Benutzer versucht, zu erreichen.

Ich will nicht zu setzen, eine Autorisierung Attribut für jede Aktion gibt es eine Möglichkeit zu erreichen, meine Anforderung an den neuen Rahmen ? ( Ich bevorzuge es, zu vermeiden, mit HttpContext.Aktuelle, es passt nicht gut in einer pipeline-Architektur )

InformationsquelleAutor yeska | 2015-07-28
Schreibe einen Kommentar