WindowsIdentity-Konstruktor (IntPtr)
Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken dargestellt wird.
Namespace: System.Security.Principal
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Sub New ( _
userToken As IntPtr _
)
'Usage
Dim userToken As IntPtr
Dim instance As New WindowsIdentity(userToken)
public WindowsIdentity (
IntPtr userToken
)
public:
WindowsIdentity (
IntPtr userToken
)
public WindowsIdentity (
IntPtr userToken
)
public function WindowsIdentity (
userToken : IntPtr
)
Parameter
- userToken
Das Kontotoken für den Benutzer, für den der Code ausgeführt wird.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
userToken ist 0 (null). – oder – userToken ist dupliziert und für Identitätswechsel ungültig. |
|
Der Aufrufer verfügt nicht über die erforderlichen Berechtigungen. – oder – Es ist ein Win32-Fehler aufgetreten. |
Hinweise
In der folgenden Tabelle werden die anfänglichen Eigenschaftenwerte für eine Instanz der WindowsIdentity-Klasse aufgeführt.
Eigenschaft |
Anfangswert |
---|---|
NTLM |
|
Normal |
|
false |
Hinweis
Das von userToken dargestellte Token wird normalerweise über einen Aufruf von nicht verwaltetem Code abgerufen, z. B. einen Aufruf der Win32-API-LogonUser-Funktion. Weitere Informationen zum Aufrufen von nicht verwaltetem Code finden Sie unter Verwenden nicht verwalteter DLL-Funktionen.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie der WindowsIdentity-Konstruktor verwendet wird, um eine neue Instanz der WindowsIdentity-Klasse für den Benutzer zu erstellen, der durch das aktuelle Windows-Kontotoken dargestellt wird. Mit dem WindowsIdentity-Objekt werden der Sicherheitsbezeichner für den Tokenbesitzer und die Identitätsverweise für die Gruppen abgerufen, der der aktuelle Benutzer angehört.
Imports System
Imports System.Security.Principal
Class WindowsIdentityMembers
<STAThread()> _
Shared Sub Main(ByVal args() As String)
Dim accountToken As IntPtr
accountToken = WindowsIdentity.GetCurrent().Token
Dim windowsIdentity1 As New WindowsIdentity(accountToken)
Dim si As SecurityIdentifier = windowsIdentity1.Owner
Console.WriteLine(si.ToString())
si = windowsIdentity1.User
Console.WriteLine(si.ToString())
Dim irc As IdentityReferenceCollection = windowsIdentity1.Groups
Dim ir As IdentityReference
For Each ir In irc
Console.WriteLine(ir.Value)
Next ir
Dim token As TokenImpersonationLevel = windowsIdentity1.ImpersonationLevel
Console.WriteLine(token.ToString())
End Sub 'Main
End Class 'WindowsIdentityMembers
using System;
using System.Security.Principal;
class WindowsIdentityMembers
{
[STAThread]
static void Main(string[] args)
{
IntPtr accountToken = WindowsIdentity.GetCurrent().Token;
WindowsIdentity windowsIdentity = new WindowsIdentity(accountToken);
SecurityIdentifier si = windowsIdentity.Owner;
Console.WriteLine(si.ToString());
si = windowsIdentity.User;
Console.WriteLine(si.ToString());
IdentityReferenceCollection irc = windowsIdentity.Groups;
foreach (IdentityReference ir in irc)
{
Console.WriteLine(ir.Value);
}
TokenImpersonationLevel token = windowsIdentity.ImpersonationLevel;
Console.WriteLine(token.ToString());
}
}
.NET Framework-Sicherheit
- SecurityPermission für die Möglichkeit zum Bearbeiten des Hauptobjekts. Zugeordnete Enumeration: SecurityPermissionFlag.ControlPrincipal.
- SecurityPermission für den Zugriff auf nicht verwalteten Code. Zugeordnete Enumeration: SecurityPermissionFlag.UnmanagedCode.
Plattformen
Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
WindowsIdentity-Klasse
WindowsIdentity-Member
System.Security.Principal-Namespace