Per IIS 8.5 e MVC 4:
Come funziona l'autenticazione di Windows?
In questa modalità, User.Identity
(come in HttpContext.Current.User.Identity
) viene popolato dal server Web sottostante. Questo potrebbe essere IIS Express nel collegamento di @R Kumar dimostrato, o IIS completo come nel video di @Thomas Benz.
In particolare, User.Identity è un oggetto WindowsIdentity. Per esempio. il seguente getto funziona:
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;
Come faccio a implementare l'autenticazione di Windows in modo corretto nel file web.config?
<system.web>
<authentication mode="Windows" />
...
Come faccio a testare se l'autenticazione di Windows funziona davvero per il mio sito ASP.NET MVC 4 web? In altre parole, come posso testarlo sul mio PC di sviluppo locale con IIS locale (versione 8) e sul server Web reale della mia azienda con IIS versione 7?
Innanzitutto, modificare l'autorizzazione ASP.NET per escludere l'utente corrente. Per esempio.
<system.web>
<authentication mode="Windows" />
<authorization>
<allow users="yourdomain\someotheruser" />
<deny users="*" />
</authorization>
In secondo luogo, abilitare l'autenticazione di Windows per il sito utilizzando Gestione IIS. È sotto la funzione 'Autenticazione'. E disabilita l'autenticazione anonima.
Si noti che la spiegazione precedente suggerirà di apportare modifiche sotto elemento del web.config del proprio sito. Tuttavia, le recenti implementazioni di IIS lo impediscono per motivi di sicurezza.
Tre, puntare il browser nella pagina Web. Il browser dovrebbe chiederti di fornire le credenziali, perché l'utente corrente non ha accesso al sito web. Fornire quelli che sono autorizzati per il sito e il codice MVC dovrebbe essere eseguito.
Quattro, controllare l'identità dell'utente. Per esempio.
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;
Questo non dovrebbe essere diverso dal test in un'applicazione di moduli Web. – Jacob
@jacob, grazie per la tua risposta. Puoi darmi qualche altro dettaglio? –
Se si utilizza IIS Express per l'esecuzione in locale, probabilmente sarà necessario controllare anche questo post. http://stackoverflow.com/questions/4762538/iis-express-windows-authentication – thinklarge