Rubrik: System/Windows · Computer/Benutzer/Ländereinstellungen | VB-Versionen: VB.NET | 08.01.03 |
Welcher User ist angemeldet? (VB.NET) Dieser Tipp zeigt, wie sich der Name des aktuell angemeldeten Benutzers unter VB.NET ermitteln lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 36.635 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wie lässt sich der Name des aktuell angemeldeten Benutzers ermitteln?
Unter VB5/6 wird man hierfür i.a.R. die GetUserName API-Funktion verwenden, auf die man natürlich auch unter VB.NET zurückgreifen könnte. Da viele Funktionen, die bisher nur das Windows-API zur Verfügung gestellt hatte nun im umfangreichen .NET Framework enthalten sind, sollte man diese als VB.NET Entwickler auch benutzen
Verantworlich hierfür ist in unserem Fall das System.Security.Principal-Namespace, das Sie über die Imports-Anweisung in ihr Projekt "importieren" können. Achten Sie aber darauf, dass die Imports-Anweisung vor Deklarationen, einschließlich Module- oder Class-Anweisungen, und vor Verweisen auf Identifizierer platziert werden muss!
Innerhalb des System.Security.Principal Namespace-Objekts findet man eine Klasse namens WindowsPrincipal, über die man Informationen eines Windows-Benutzer ermitteln kann. Die GetCurrent-Methode der WindowsIdentity-Klasse liefert uns letztendlich das gewünschte WindowsIdentity-Objekt für den aktuell angemeldeten Benutzer.
' Klasse importieren Imports System.Security.Principal Public Class Form1 Inherits System.Windows.Forms.Form Public Function GetUserName() As String ' Name des aktuell angemeldeten ' Benutzers ermitteln Dim oUser As New WindowsPrincipal(WindowsIdentity.GetCurrent) ' Rückgabewert: Server\UserName ' Wir möchten aber nur den Benutzername! With oUser.Identity.Name() Return(.Substring(.IndexOf("\") + 1)) End With End Function End Class