2012-04-27 6 views
7

In ASP.NET (MVC e WebAPI), come viene inizializzato l'oggetto Identità utente con i dati del cookie FormsAuthentication?Come è l'identità dell'utente | Impostazione principale durante il ciclo di vita dell'applicazione

Quello che voglio fare è utilizzare 2 tipi di autenticazione, basata su cookie e un'intestazione basata su uno personalizzato. Poiché la classe AuthorizeAttribute controlla solo il metodo User.Identity.IsAuthorized() e non utilizza alcun codice specifico per FormsAuthentication, significa che tutto ciò che devo fare è impostare manualmente l'oggetto User.Identity, sia in global.asax che in DelegatingHandler.

Quindi, come impostare User.Identity? In che modo il framework lo imposta automaticamente usando FormsAuthentication?

risposta

1

Questo è un related answer.

L'identità può essere impostata in un gestore, in un modulo o in Global.asax. Puoi modificarlo in qualsiasi momento del ciclo di vita della richiesta, ma in genere il posto migliore per farlo è in PostAuthenticateRequest. A questo punto, FormsAuthentication ha eseguito il proprio lavoro ed è possibile aumentare o sostituire HttpContext.Current.User.

+1

Quindi, in base a ciò che ha detto Aliostad, una volta configurata l'identità, se aggiungono 'User.Controller', l'identità verrà trasferita a questo? –

0

ASP.NET MVC Controller ha un Controller.User ma l'API Web non ne ha uno. Attualmente è requested da inserire.

+1

Posso fare: 'HttpContext.Current.User' –

+0

@Lolcoder Non è grandioso. È un hang-over dai giorni di archiviazione statici/di thread del passato. ** Non può essere testato su unità **. – Aliostad

Problemi correlati