2011-10-20 13 views
9

Ho creato un sito. È un sito interno. È un sito .NET 4.0. Mi piacerebbe prendere il nome utente usando HttpContext.Current.User.Identity.Name della persona che naviga nel sito. Non esiste una pagina di accesso poiché è interna. Non sono sicuro di cosa mi stia perdendo. Ho bisogno di quanto segue nel mio WebConfig:Perché HttpContext.Current.User.Identity.Name restituisce vuoto

<authentication mode="Windows"></authentication> 
<identity impersonate="true"/> 
<authorization> 
    <allow users="?"/> 
</authorization> 

e questo:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 

+0

Non si ottengono i nomi di accesso degli utenti che desiderano rimanere anonimi senza forzare l'autenticazione di qualche tipo - se questo è ciò che si sperava di fare? –

risposta

14

Si esce vuoto quando non autenticato. È possibile verificare ciò anche facendo:

HttpContext.Current.User.Identity.IsAuthenticated 

controllare il livello di autenticazione in IIS, si è impostato per abilitare l'autenticazione di Windows anche lì?

4

Sì, si ha bisogno, almeno è necessaria la parte

<authentication mode="Windows"></authentication> 

se stai utilizzando l'autenticazione integrata di Windows.

Dopo di che, si dovrebbe essere in grado di afferrare il nome utente della persona loggato

No, non hanno bisogno di:.

<validation validateIntegratedModeConfiguration="false" /> 
+0

Ho modificato il mio webconfig per avere solo , ma ancora nessun nome utente. Navigando nel sito dal mio computer, mi aspetto di vedere il mio nome utente (l'utente con cui sono registrato nella macchina). Non sono sicuro di ciò che mi manca. – obautista

+2

Hai configurato l'autenticazione integrata di Windows a livello di app in IIS? – Icarus

8

In iis disabilita l'accesso anonimo e abilita la sicurezza integrata di Windows per la tua applicazione web.

2

In IIS, andare su Sites \ Sito Web predefinito \ [Sito Web].

Selezionare l'opzione di autenticazione e disabilitare l'autenticazione anonima.

1

Nel mio caso la rimozione della riga <remove name="FormsAuthentication" /> da web.config aiuta.

Ho anche <authentication mode="Forms" /> nella sezione <system.web>.

Problemi correlati