2011-02-10 3 views
29

Utilizzo l'autenticazione basata su form.Ottieni il nome utente in Autenticazione moduli

In autenticazione di Windows per ottenere il nome utente del PC io uso: User.Identity.Name

ho bisogno di queste informazioni anche in autenticazione basata su form, ma User.Identity.Name non funziona.

Come posso ottenere User.Identity.Name senza l'autenticazione di Windows?

risposta

51

Per ottenere il nome utente dell'utente autenticato:

HttpContext.Current.User.Identity.Name; 
+2

restituisce una stringa vuota. –

+2

Sei sicuro di aver configurato correttamente l'autenticazione basata su form nel file web.config? Che cosa restituisce "this.Context.User.Identity.IsAuthenticated" – Matt

+0

@Luca Romagnoli puoi pubblicare il tuo file web.config? o almeno la sezione di autenticazione e le eventuali sezioni di autorizzazione che hai? – Matt

1

che è esattamente come lo faccio, penso che ci potrebbe essere qualcosa di sbagliato con la configurazione? Ad esempio, hai effettivamente effettuato l'accesso al sito durante il debug? In caso contrario, è necessario per ottenere un valore.

0

Può dipendere da quando ci si trova nel ciclo di vita.

Se si gestisce BeginRequest(), non ci saranno ancora informazioni di autenticazione. Considerando che se gestisci EndRequest() ci sarà.