VB.NET-Tipp 0049: Daten über den angemeldeten Benutzer auslesen
von Benjamin Wagner
Beschreibung
Dieser Tipp zeigt, wie sich Informationen über den aktuell angemeldeten Benutzer auslesen lassen.
Schwierigkeitsgrad: | Framework-Version(en): .NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5 | .NET-Version(en): Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008 | Download: |
' Dieser Quellcode stammt von http://www.activevb.de ' und kann frei verwendet werden. Für eventuelle Schäden ' wird nicht gehaftet. ' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. ' Ansonsten viel Spaß und Erfolg mit diesem Source! ' Projektversion: Visual Studio 2002/2003 ' Option Strict: Aus ' Option Explicit: An ' ' Referenzen: ' - System ' - System.Data ' - System.XML ' ' Imports: ' - Microsoft.VisualBasic ' - System ' - System.Collections ' - System.Data ' - System.Diagnostics ' ' ############################################################################## ' ############################### modWhoAmI.vb ################################# ' ############################################################################## Imports System.Console Imports System.Security.Principal Public Enum USER_PRIV As Integer USER_PRIV_GUEST = 0 USER_PRIV_USER = 1 USER_PRIV_POWERUSER = 2 USER_PRIV_ADMIN = 3 End Enum Module modWhoAmI Sub Main() Dim User As New WindowsPrincipal(WindowsIdentity.GetCurrent) Dim Recht, BenutzerName, RechnerName As String ' User.Identity.Name zerlegen in Benutzername und Rechnername. With User.Identity.Name BenutzerName = .Substring(.IndexOf("\") + 1) RechnerName = .Substring(0, .IndexOf("\")) End With ' Benutzerstatus abfragen. Select Case User_LogInState() Case USER_PRIV.USER_PRIV_ADMIN Recht = "Administrator" Case USER_PRIV.USER_PRIV_GUEST Recht = "Gast" Case USER_PRIV.USER_PRIV_POWERUSER Recht = "PowerUser" Case USER_PRIV.USER_PRIV_USER Recht = "User" End Select ' Ausgabe der Daten. WriteLine() WriteLine("Auskunft über den angemeldeten Benutzer") WriteLine("---------------------------------------------") WriteLine("Rechnername : " & RechnerName) WriteLine("Benutzername: " & BenutzerName) WriteLine("Rechte : " & Recht) WriteLine("---------------------------------------------") End Sub Public Function User_LogInState() As USER_PRIV ' Verweis auf aktuell angemeldeten Benutzer erstellen Dim oUser As New WindowsPrincipal(WindowsIdentity.GetCurrent) ' Anmeldestatus prüfen If oUser.IsInRole(WindowsBuiltInRole.Administrator) Then ' Administrator Return (USER_PRIV.USER_PRIV_ADMIN) ElseIf oUser.IsInRole(WindowsBuiltInRole.PowerUser) Then ' PowerUser (Admin mit leicht eingeschränkten Rechten) Return (USER_PRIV.USER_PRIV_POWERUSER) ElseIf oUser.IsInRole(WindowsBuiltInRole.User) Then ' User mit eingeschränkten Rechten Return (USER_PRIV.USER_PRIV_USER) ElseIf oUser.IsInRole(WindowsBuiltInRole.Guest) Then ' Gast Return (USER_PRIV.USER_PRIV_GUEST) End If End Function End Module
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 6 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Üggi am 07.11.2008 um 23:47
hi,
das programm läuft super unter windows xp.
aber wenn ich das programm als admin im vista starte, bekommen ich immer die rückmeldung, dass ich nur ein "user" bin obwohl ich eigentlich ein admin bin.
deaktiviere ich die benutzerkontensteuerung im vista, dann bekomme ich als ergebnis "administrator".
ist es auch möglich im vista "administrator" zurückzubekommen wenn ich das häkchen gemacht habe? weil ich bin ja eigentlich ein admin.
oder gibts sonst eine möglichkeit?
lg üggi
Kommentar von Jens am 15.10.2006 um 17:56
Hallo kann mir jemand sagen wie ich benutzername mit zugehöriger gruppe auslesen kann. in einer Domäne
Kommentar von Karran am 28.07.2005 um 12:49
Unter XP ist es möglich, dass mehrere Benutzer gleichzeitig angemeldet sind. Ist es möglich sich nicht nur einen angemeldeten Benutzer, sondern alle anzeigen zu lassen?
Kommentar von Wittecke am 02.12.2004 um 08:26
gibt es dafür nicht, den Namespace
system.environment?
hier stehen doch eigentlich alle daten direkt drin und man braucht keine aufwendige funktion.
mfg
ralfe
Kommentar von Max am 25.08.2004 um 01:59
Danke für den Tip! hat mir geholfen.
Kommentar von Christoph Friedrich am 19.07.2004 um 11:45
warum hast du noch eine funktion "User_LogInState" geschrieben?
das hätte man doch auch statt der select case anweisung nehmen können.
irgendwie ist das nämlich doppelt vorhanden (die abfrage)