Eingebauter Helfer, um User.Identity.Name in Domain \ Username zu parsen
Gibt es eine eingebaute Dienstprogramm oder Hilfsprogramm, zu analysieren HttpContext.Current.User.Identity.Name
z.B. domain\user
man separat domain-Namen, wenn vorhanden, und Benutzer?
Oder gibt es irgendeine andere Klasse zu tun?
Ich verstehe, dass es sehr einfach zu nennen String.Split("\")
aber nur interessant
InformationsquelleAutor der Frage abatishchev | 2008-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist besser (einfacher zu bedienen, keine Möglichkeit
NullReferenceExcpetion
und entspricht MS-coding-Richtlinien über die Behandlung von leeren und null-Zeichenfolge ebenso):Verwendung:
Dies erfordert C# - 3.0-compiler (oder neuer) und erfordert nicht die 3.0 .Net für die Arbeit nach der Zusammenstellung.
InformationsquelleAutor der Antwort Aen Sidhe
System.Environment.UserDomainName
gibt Sie den domain-Namen nurEbenso
System.Environment.UserName
gibt Ihnen die Benutzernamen nurInformationsquelleAutor der Antwort StarCub
InformationsquelleAutor der Antwort Gruff Bunny
Jungs Sie könnten auch erwägen Parsen einen string input wie "[email protected]" oder "user@domain".
Dies ist, was ich bin derzeit dabei:
Wenn der string mit '\' und dann die split-Zeichenkette '\ \ ' und extrahieren Sie Benutzernamen und Domäne
Else If string enthält '@', dann split string '@' und extrahieren Sie Benutzernamen und Domäne
Sonst gönnen string als Benutzernamen ohne Domäne
Ich bin immer noch auf der Jagd nach einer besseren Lösung in dem Fall, wo die Eingabe-Zeichenkette nicht in einer leicht vorhersehbar format, also "Domäne\Benutzer@Domäne". Ich denke RegEx...
Update: ich stehe korrigiert. Meine Antwort ist ein bisschen out-Kontext bezieht es sich auf den Allgemeinen Fall eines parsing-Benutzernamen und Domänen der Benutzer-Eingabe, wie im Benutzer-login/Anmeldung-Eingabeaufforderung. Hoffe, es hilft noch jemand.
InformationsquelleAutor der Antwort Omar
Denke ich Nicht zu, denn ich fragte mich die gleiche Frage neulich 😀
Können Sie versuchen:
InformationsquelleAutor der Antwort inspite
Glaube ich nicht, da System.Sicherheit.AUFTRAGGEBER.WindowsIdentity nicht enthalten, wie Mitglieder.
InformationsquelleAutor der Antwort Aen Sidhe
Obwohl nicht ein .NET eingebaut, kann man immer P/Invoke zu CredUIParseUserName. Hier's ein Beispiel, wie es zu benutzen .NET.
PS: Es scheint nicht zu behandeln, der "Punkt", wie in ".\Benutzername".
InformationsquelleAutor der Antwort Mihai
Scheint, wie ein problem aus, das gelöst werden durch reguläre Ausdrücke:
InformationsquelleAutor der Antwort Adam Cooper