2016-07-18 37 views
0

Also, hier ist der Deal.WebApi Controller Lebenszyklus

Ich habe ein WebApi mit einer Anzahl von Controllern. Ich habe einen Identity Server für die Authentifizierung konfiguriert. Das alles funktioniert.

Wenn ich einen Aufruf an die API und ich das entsprechende Token übergeben, wenn ich einen Haltepunkt in einer der Aktionen des Controllers setzen, ist das Benutzerobjekt ordnungsgemäß ausgefüllt.

Nun benötigt der Code, den die API-Aktionen ausführen, Daten, die sich auf den authentifizierten Benutzer beziehen. Wenn ich versuche, diesen Code im Konstruktor des Controllers auszuführen, schlägt mein Code fehl, weil der Benutzer noch nicht richtig gefüllt ist.

Also, zu meiner Frage: Gibt es ein Element des Lebenszyklus des Controllers, das ich noch entdecken muss, dass ich Code für jeden Aufruf auf dem Controller ausführen kann (wie im Konstruktor), aber wo Benutzerobjekt wurde korrekt ausgefüllt?

Antwort

1

Der Benutzer wird nur gut zugewiesen, nachdem der Controller erstellt wurde. Es gibt keine Ereignisse auf ApiControllern, die Sie damit umgehen können. Die gängigste Methode ist das Extrahieren einer Methode, die zusätzliche Informationen abruft und sie bei jeder Aktion aufruft.

+1

Ich hatte ein schreckliches Gefühl, dass das der Fall war. –

0

Sie können eine Art Token (verschlüsselte UserId/Guid) in der Kopfzeile hinzufügen. Sie können die Header-Variable/das Token verwenden, um das Benutzerobjekt auf der Controllerseite abzurufen.