2016-09-05 3 views
0

Ich habe eine ähnliche Frage gestellt, aber scheint nicht mein Problem zu lösen (nicht wirklich sicher, ob was ich ist versucht zu erreichen ist möglich)C# .NET Get Benutzername "Alias" - (Name des persönlichen Ordners wie es mir scheint, mein Name!)

Kontext: ich erstelle # -Anwendung eine Windows Form C, die für Benutzer ermöglicht auszuwählen und eine HTML-Vorlage an einem Kunden durch die SendGrid API (Irrelevant)

senden Wenn der Benutzer eine E-Mail sendet, protokolliere ich seine Details in einer CSV-Datei mit ihrem Benutzernamen, zum Beispiel B12345, aber jedes System kennt ihren Namen (da es der Titel ihres persönlichen Ordners ist), aber wenn ich einfach den Pfad des 'Spezialordner' Ich bekomme C: \ Benutzer \ B12345.

Wo kann ich auf den angemeldeten Benutzeralias zugreifen? das heißt ihr voller Name?

+0

Warten Sie Benutzer B12345 Details in einer csv speichern - in einem Ordner mit ihrem Namen (zB C: \ Users \ B12345)? was versuchst du genau zu laden? – gilmishal

+0

Beachten Sie, dass der * Anzeigename * eines Benutzerprofil-Verzeichnisses (Home-Verzeichnis) nicht unbedingt mit dem tatsächlichen Dateisystem des Ausgangsverzeichnisses identisch ist. Die Datei 'desktop.ini' spielt allen Leuten Streiche. – Dai

+0

gilmishal - Ich spare nicht dort, sorry. Jeder Benutzer schreibt in eine CSV-Datei, die auf dem Server gespeichert ist. Meine Frage ist einfach zu versuchen, den vollen Benutzernamen des angemeldeten Benutzers von ihrem Benutzernamen zu erhalten, der immer ähnlich zu B12345 formatiert wird. Wenn ich mich als B12345 anmelde, wäre mein persönlicher Ordner beispielsweise "Declan Possnett". – DeclanPossnett

Antwort

1

Es gibt eine sehr ähnliche Frage hier ist: Get Windows User Display Name

Im Grunde, was ich Ihre Frage sind Sie nach dem Anzeigenamen eines Benutzers, im Gegensatz zu den tatsächlichen Benutzername verstehen. Daher möchten Sie wahrscheinlich die DisplayName-Eigenschaft von UserPrincipal verwenden.

System.DirectoryServices.AccountManagement.UserPrincipal.Current.DisplayName 

Als andere Frage Staaten, müssen Sie einen Verweis auf:

System.DirectoryServices.AccountManagement.dll

+0

Das hat perfekt funktioniert! Danke - Und tut mir leid, dass ich etwas gepostet habe, das tatsächlich eine Antwort hat. – DeclanPossnett