2010-12-20 5 views
1

Ich habe einen Controller, und um alle seine Aktionen aufzurufen, muss der Benutzer Privilegien dafür haben. Die Frage ist, wie das überprüft werden soll, bevor die Aktion ausgeführt wird. Wenn der Benutzer keine Berechtigungen hat, möchte ich eine View mit Fehlermeldung rendern. Ich habe versucht, überschriebenen OnActionExecuting Methode zu verwenden, aber ich kann keinen Blick von dieser MethodeASP.NET MVC 2 Wie überprüft man die Berechtigungen des Benutzers, bevor die Aktion ausgeführt wird?

Antwort

3

Ich habe versucht, zu verwenden, überschriebene OnActionExecuting Methode zurück, aber ich kann nicht einen Blick von dieser Methode

zurückkehren

Wie in der Tat können Sie:

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    bool userHasPermissions = CheckUserPermissionsFromSomewhere(filterContext); 
    if (!userHasPermissions) 
    { 
     filterContext.Result = new ViewResult 
     { 
      // you can also specify master page and view model 
      ViewName = "Forbidden" 
     }; 
    } 
    else 
    { 
     base.OnActionExecuting(filterContext); 
    } 
} 
+0

Es funktioniert, danke! :) Ich frage mich auch, wie man eine "Basis" -Methode erstellt, die eine Ansicht mit Fehlermeldungen rendern wird (die Nachricht wird als Parameter verwendet). Irgendwelche Ideen ? – Tony

0

In den Klasse-Controller wird diese Methode geschützt.

Verwandte Themen