ASP.NET Immer Aktuelle Benutzername
Ich versuche, eine Anwendung zu erstellen, die auf unser Firmen-intranet mit ASP.NET und VB.NET.
Weder diese Funktionen geben nichts einmal meiner Anmeldung veröffentlicht wird, von IIS. Sie funktionieren in der Entwicklung (ie: Taste F5 bekomme ich meine regelmäßige Netzwerk-Benutzername), aber einmal veröffentlicht, mit dem Sie zurück " (eine leere Zeichenfolge).
HttpContext.Current.User.Identity.Name
Page.User.Identity.Name
Ich bin auf der Suche nach etwas-irgendetwas-das wird schnappen Sie sich die aktuelle login-name. Bitte beachten Sie, dass ich NICHT ändern kann, diese Einstellungen in meinem web.config, weil Sie andere Anforderungen an die Funktionalität erfüllen.
<authentication mode="Windows"/>
<roleManager enabled="true" cacheRolesInCookie="true" defaultProvider="AspNetWindowsTokenRoleProvider" cookieName=".ASPXROLES" cookiePath="/" cookieTimeout="480" cookieRequireSSL="false" cookieSlidingExpiration="true" createPersistentCookie="false" cookieProtection="All" />
Noch kann ich ändern, die IIS-Einstellungen, einschließlich der "Anonymen Benutzer" - Einstellung. Specs sind in Stein gemeißelt und ich hätte zu hacken von meinem eigenen Bein (oder den Kopf), um Sie verändert.
Ich würde denken, es muss ein Weg, um die aktuelle Login-name des Anwenders mit meiner aktuellen Konfiguration.
Irgendwelche Ideen?
Dank,
Jason
InformationsquelleAutor | 2011-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deaktivieren Sie die Anonyme Authentifizierung in IIS.
User.Identity.Name
könnte leer sein, wenn die Anonyme Authentifizierung in IIS aktiviert ist.Eingestellt im web.config
Verwenden
User.Identity.Name
um die Anmeldung der Benutzer.Environment.UserName
ist die laufende thread-Identität. Wenn Sie aktiviert haben Identitätswechsel als Mark sagte, Sie können die Rücksendung Ergebnis anders sein wird. Dies erfordert jedoch ASP.NET Impersionation. Wenn Sie nicht brauchen, ASP.NET Identitätswechsel und den Umgang mit der thread-Identität, die Sie ignorieren könnenEnvironment.UserName
wenn und verwenden nurUser.Identity.Name.
Auch überprüfen, bevor alle Aktionen ausführen.
Hier ist ein gutes Beispiel
InformationsquelleAutor Xorsat
Ich bin mir ziemlich sicher, dass der einzige Weg, um es zu arbeiten ist, um tatsächlich überprüfen Sie die "integrierte windows Authentifizierung" im IIS. Wenn "anonymen Zugriff aktivieren" wird ebenfalls geprüft, es wird nur anonym, so dass Sie sich drehen sollte, dass man sich ab...
Ist es auf 'zulassen'? Wenn ja, könnten Sie fügen Sie diese auf Ihrer Website.config?
<authorization> <deny users="?" /> </authorization>
InformationsquelleAutor ShaneBlake
Hier ist was ich gefunden habe (irgendwo), und endete mit. Hoffe, es kann jemand anderes helfen!
InformationsquelleAutor
Und noch ein weiterer Weg, um die angemeldeten user name:
InformationsquelleAutor
Der Grund, warum es funktioniert in der Entwicklung ist, weil VS die test-web-server ist nicht IIS, und läuft unter dem aktuellen Benutzerkonto.
Wenn Sie wollen, dass diese arbeiten in IIS müssen Sie in der Lage sein, um IIS konfigurieren, richtig - es gibt keinen anderen Weg, es zu tun.
InformationsquelleAutor blowdart
Falls Domäne und Benutzername angegeben, so etwas wie
"DOMAIN\username"
im ADHttpContext.Current.User.Identity.Name.Split('\\')[0]
gibt die Domainund
HttpContext.Current.User.Identity.Name.Split('\\')[1]
gibt den BenutzernamenInformationsquelleAutor nPcomp
Wäre diese Arbeit für das, was Sie versuchen zu erreichen?
Environment.GetEnvironmentVariable("USERNAME").ToString();
Versucht, aber leider hat nicht funktioniert 🙁
InformationsquelleAutor Spacemancraig
Ich habe versucht, alle der oben genannten und keiner von Ihnen arbeitete. Ich konnte auch nicht in meinem IIS-Einstellungen zu ändern. Ich kämpfte und kämpfte und kämpfte mit diesem. Ich suchte auch lange Zeit ohne Suche nach der Antwort. Eines der Dinge ist, dass ich keinen Zugriff auf den IIS, die gesperrt ist, so konnte ich nicht ändern Sie die server-Einstellungen. Ich hatte zu gehen mit dem, was ich war in der Lage zu tun im code. Wenn ich recherchiert, viele der Antworten sagte, "set up IIS wie diese". . .gut, das ist toll, wenn Sie Zugriff auf den IIS, aber ich wollte nicht-ich musste arbeiten mit dem, was ich tun könnte-code. So landete ich Umgang es wie folgt:
In meinem web-config-Datei habe ich noch die folgenden Zeilen von code innerhalb der Sektion:
Dann ist es wieder ein Fehler auf meinem lokalen, die ich hatte, zu gehen und zu beheben. Ich ging in die applicationhost.config-Datei befindet sich im folgenden Pfad auf meinem Rechner (deine kann anders sein):
C:\users\"Ihr Benutzername"\Eigene Dokumente\"yourIISInstallation"\config\applicationhost.config
und ich habe die folgenden Einstellungen auf "zulassen", die festgelegt worden waren, zu "leugnen":
geändert
und
geändert:
in der
Abschnitt. Bevor ich heraus gefunden das zu beheben, ich zog meine Haare über diese. Ich hoffe, das jemand hilft. Sobald ich in den obigen code in die webconfig Datei, funktionierte es auf das intranet, ist es gerade Fehler in meinem lokalen, aber sobald ich fügte hinzu, die oben auf meinem lokalen applicationhost.config Datei, es begann auf meinem lokalen als auch. Dann rief ich die folgende variable, um den Namen des angemeldeten Benutzers unter windows:
Prost!
InformationsquelleAutor dotnetterdev