ho lottato e lottato e lottato con questo. Una delle cose è che non ho accesso a IIS, che è bloccato, quindi non posso modificare nessuna delle impostazioni del server. Dovevo andare con quello che ero capace di fare in codice. Quando ho effettuato una ricerca, molte delle risposte hanno detto "imposta IIS in questo modo". . .bene, è fantastico quando si ha accesso a IIS, ma non l'ho fatto - ho dovuto lavorare con quello che potevo fare nel codice.Così, ho finito per gestire in questo modo:
Nel mio file di configurazione web, ho aggiunto le seguenti righe di codice all'interno della sezione :
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
Poi, è tornato un errore sul mio locale, che dovevo andare a riparare. Sono andato al file applicationhost.config situato nel seguente percorso sulla mia macchina (il tuo potrebbe essere diverso):
C: \ users \ "il tuo nome utente" \ My Documents \ "yourIISInstallation" \ config \ applicationhost.config
e ho cambiato le seguenti impostazioni per "consentire", che era stato impostato su "negare":
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
cambiato in
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
e
<section name="windowsAuthentication" overrideModeDefault="Deny" />
a
<section name="windowsAuthentication" overrideModeDefault="Allow" />
nella sezione
<sectionGroup name="authentication">
. Prima di scoprire questa soluzione, mi stavo strappando i capelli. Spero che questo aiuti qualcuno. Non appena ho inserito il codice sopra nel file webconfig, ha funzionato sulla intranet, ha appena restituito errori nel mio locale, ma non appena ho aggiunto quanto sopra al mio file applicationhost.config locale, ha iniziato a lavorare sul mio locale anche. Quindi, ho chiamato la seguente variabile per restituire il nome dell'utente connesso su Windows:
HttpContext.Current.User.Identity.Name.ToString().Substring((HttpContext.Current.User.Identity.Name.ToString().IndexOf("\\")) + 1);
Cheers!
Utilizzare l'autenticazione di Windows. Altrimenti, come saprà il browser e perché invierà al server, quale utente di Windows ha effettuato l'accesso? – CodeCaster
@CodeCaster, dovrei farlo completamente impossibile usando l'autenticazione dei moduli ?. Le applicazioni utilizzano i ruoli per il controllo dei livelli di accesso, ma mi piacerebbe ottenere l'account Windows corrente per alcune audizioni di backend – StackTrace
I ruoli non sono associati a un metodo di autenticazione specifico, è possibile utilizzarli anche con l'autenticazione di Windows. È un'applicazione intranet? – CodeCaster