Ich versuche, den Windows-Benutzernamen beim Debuggen in Visual Studio 2013 abzurufen. Ich verwende einfach:
httpcontext.current.user.identity.name
Wenn ich dies auf meinem Dev Server ausführe, funktioniert es einwandfrei. Wenn ich es in einer früheren Version von Visual Studio im Debug-Modus ausführe, funktioniert es auch einwandfrei.
Meine Probleme sind: Wenn ich dies in Visual Studio 2013 ausführe, erhalte ich eine leere Zeichenfolge.
Meine Webkonfiguration ist wie folgt.
<system.web>
<authentication mode="Windows"/>
<identity impersonate="false"/>
<authorization>
<allow users="*"/>
</authorization>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
</system.web>
Als ich dies recherchierte, fand ich meine Antwort, kann sie aber nicht im Internet finden. Deshalb dachte ich, ich würde dies teilen:
Ich habe mein Problem behoben, indem ich meine Datei applicationhost.config geändert habe. Meine Datei wurde im Ordner "\ Eigene Dateien \ IISExpress \ config" gespeichert.
Es scheint, dass VS2013 meine Datei web.config ignoriert und verschiedene Authentifizierungsmethoden angewendet hat.
Ich musste diesen Teil der Datei so ändern, dass er wie folgt aussieht. In Wahrheit habe ich nur die anonyme Authentifizierung auf false und den windowsAuthentication-Modus auf true geändert.
quelle
anonymousAuthentication
. Es reicht aus, sich einzuschaltenwindowsAuthentication
. Diese Einstellungen steuern, welche Authentifizierungsmechanismen die Websites verwenden dürfen.Drücken Sie in Visual Studio 2013 UND VS15 (aber ich denke, wenn dies für alle anderen Versionen gleich ist) einfach F4 und ändern Sie diese beiden Eigenschaften: - Anonyme Authentifizierung: Deaktivieren - Windows-Authentifizierung: Aktivieren
quelle
In VS2013 F4 in Ihrem Projekt können Sie das Eigenschaftenfenster anzeigen, den anonymen Zugriff deaktivieren und die "Windows-Authentifizierung" aktivieren.
Dann wird es funktionieren. Sie müssen nichts anderes ändern
quelle
VS 2015 ändert dies. Es fügte meinem Webprojekt einen .vs-Ordner hinzu und die applicationhost.config befand sich dort. Ich habe die vorgeschlagenen Änderungen vorgenommen (Fensterauthentifizierung = true, anon = false) und es wurde ein Benutzername anstelle eines Leerzeichens bereitgestellt.
quelle
Öffnen Sie die Datei applicationHost.config im Ordner C: \ Users [Benutzer-ID] \ Documents \ IISExpress \ config. Ändern Sie in dieser Datei den overrideModeDefault von anonymAthentication und windowsAuthentication in "Allow".
Ändern Sie als Nächstes lockItem für AnonymousAuthenticationModule und WindowsAuthenticationModule in "false"
Durch diese Änderungen können die vorhandenen Webkonfigurationseinstellungen überschreiben, was in der applicationHost-Datei für IIS Express enthalten ist.
quelle
Sie können auch die Projekteigenschaften für Ihr Webprojekt ändern, auf den linken Registerkarten "Web" auswählen und dann die Dropdown-Liste "Server" in "Lokaler IIS" ändern. Erstellen Sie ein neues virtuelles Verzeichnis und verwenden Sie den IIS-Manager, um Ihren Site- / App-Pool wie gewünscht einzurichten.
Ich bevorzuge diese Methode, da Sie normalerweise ein lokales IIS-V-Verzeichnis (oder eine Site) zum lokalen Testen haben. Sie werden auch keine anderen Websites auf diese Weise beeinflussen.
quelle
Es scheint, dass die richtige Antwort von user3149240 oben bereitgestellt wird. Wie Neil Watson jedoch betonte, spielt hier die Datei applicationhost.config eine Rolle.
Die Änderungen können tatsächlich im VS-Eigenschaftenbereich oder in der Datei vorgenommen werden, wenn auch an einer anderen Stelle. Am unteren Rand der Datei applicationhost.config befindet sich eine Reihe von Speicherortelementen. Jede App für IIS Express scheint eine davon zu haben. Durch Ändern der Einstellungen in der Benutzeroberfläche wird dieser Abschnitt der Datei aktualisiert. Sie können die Einstellungen entweder über die Benutzeroberfläche ändern oder diese Datei ändern.
Hier ist ein Beispiel mit anonymer Authentifizierung aus und Windows-Authentifizierung ein:
Dies entspricht in der VS-Benutzeroberfläche:
quelle
F4 bringt mich nicht immer zu diesem Panel. Außerdem wird oft gesagt, dass ein Bild mehr sagt als tausend Worte.
quelle