Wie kann ich das Attribut [Authorize] am besten mit Ajax und Partial Views verwenden?

8

Ich wollte [Authorize] für Aktionen verwenden, die Teilansichten über Ajax zurückgeben; aber ich bekomme nicht das Verhalten, das ich möchte (obwohl es das Verhalten ist, das ich erwartet habe).

Es scheint wie eine Totale; Aber gibt es eine Möglichkeit, dieses Attribut auf "Ausbrechen" eines AJAX-Anrufs auszuweiten und die gesamte Seite zum Anmeldebildschirm umzuleiten? (Im Gegensatz zum Zurückgeben des Anmeldebildschirms an den Ort, an dem ich UpdateTargetId eingerichtet habe?)

Ich denke, ich habe einen Überblick darüber, wie ich das bei jedem einzelnen Ajax-Aufruf machen würde, aber wenn ich das irgendwie zentralisieren könnte, würde es viel Code sparen ...

    
Professional Sounding Name 13.04.2009, 07:19
quelle

1 Antwort

8

AuthorizeAttribute macht das nicht für Sie, aber Sie können Ihren Code zentralisieren. Erstellen Sie ein neues Attribut, das den HTTP-Statuscode 401 (nicht autorisiert) zurückgibt, wenn derzeit kein Benutzer angemeldet ist. Behandeln Sie in einer JavaScript-Datei, die von Ihrem site.master referenziert wird, das Ereignis jQuery $ .ajaxError. Suchen Sie im Antwortstatuscode nach http 401 und leiten Sie über JavaScript auf Ihre Anmeldeseite um. Jetzt wird jeder Ajax-Aufruf, den Sie über jQuery ausführen, hier enden, wenn der aktuelle Benutzer nicht autorisiert ist.

    
Craig Stuntz 13.04.2009, 12:43
quelle

Tags und Links