2010-12-23 5 views
0

Ich verwende IActionFilter OnActionExecuting-Funktion für einige Sicherheitsüberprüfung, aber wenn es ruft eine Bedingung überprüfen und wenn diese Bedingungen fehlschlagen möchte ich es an Login-Aktion umleiten, aber das Problem ist, es aufrufen die nächste Aktion, die ich nicht ausführen möchte, wenn diese Bedingungen nicht erfüllt sind. Problem in Aktion Anruf nach IActionFilter OnActionExecuting Funktion

Antwort

1

Dies sollte die Arbeit machen:

public class MyCustomActionFilter : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (someCondition) 
     { 
      var values = new RouteValueDictionary(new { 
       action = "index", 
       controller = "login" 
      }); 
      filterContext.Result = new RedirectToRouteResult(values); 
     } 
     base.OnActionExecuting(filterContext); 
    } 
} 

Stellen Sie sicher, dass Attribut von ActionFilterAttribute ableitet.

+0

+1 Danke das funktioniert. Mein Fehler ist, dass ich es nicht wie base.OnActionExecuting (filterContext) überschreiben; –

+0

Wenn eine Anfrage auf Ajax basiert, wird sie nicht auf diese Seite weitergeleitet, sondern in das Fenster –