Freigeben über


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

ArgumentException

userToken ist 0 (null).

– oder –

userToken ist dupliziert und für Identitätswechsel ungültig.

SecurityException

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

AuthenticationType

NTLM

WindowsAccountType

Normal

IsAuthenticated

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

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