2012-04-27 10 views
7

W ASP.NET (MVC i WebAPI) w jaki sposób jest inicjowany obiekt tożsamości użytkownika z danymi z pliku cookie FormsAuthentication?Jak to jest Tożsamość użytkownika | Zestaw główny podczas cyklu życia aplikacji

Co chcę zrobić, to użyć 2 rodzajów uwierzytelniania, opartego na plikach cookie i niestandardowego nagłówka. Ponieważ klasa AuthorizeAttribute sprawdza tylko metodę User.Identity.IsAuthorized() i nie używa żadnego kodu specyficznego dla FormsAuthentication, oznacza to tylko, że muszę ręcznie ustawić obiekt User.Identity, czy to w pliku global.asax, czy w DelegatingHandler.

Jak skonfigurować User.Identity? W jaki sposób framework automatycznie ustawia go przy użyciu FormsAuthentication?

Odpowiedz

1

Tutaj jest related answer.

Tożsamość można ustawić w module obsługi, w module lub w pliku Global.asax. Można go modyfikować w dowolnym momencie cyklu życia żądania, ale zwykle najlepszym miejscem do tego jest PostAuthenticateRequest. W tym momencie narzędzie FormsAuthentication wykonało swoją pracę i można rozszerzyć lub zastąpić plik HttpContext.Current.User.

+1

Tak więc na podstawie tego, co powiedział Aliostad, kiedy ustawię tożsamość, jeśli dodadzą "User.Controller", tożsamość przeniesie się do tego? –

0

Kontroler ASP.NET MVC ma Controller.User, ale interfejs Web API go nie ma. Obecne jest requested do wstawienia.

+1

Mogę: 'HttpContext.Current.User' –

+0

@Lolcoder To nie jest świetne. Jest to zawieszenie z przeszłości obszaru magazynowania statycznego/wątku. ** Nie można go przetestować w jednostce **. – Aliostad

Powiązane problemy