WindowsIdentity Konstruktoren

Definition

Initialisiert eine neue Instanz der WindowsIdentity-Klasse.Initializes a new instance of the WindowsIdentity class.

Überlädt

WindowsIdentity(IntPtr)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token.

WindowsIdentity(WindowsIdentity)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse unter Verwendung des angegebenen WindowsIdentity-Objekts.Initializes a new instance of the WindowsIdentity class by using the specified WindowsIdentity object.

WindowsIdentity(String)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch den angegebenen UPN (User Principal Name, Benutzerprinzipalname) dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified User Principal Name (UPN).

WindowsIdentity(IntPtr, String)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken und den angegebenen Authentifizierungstyp dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token and the specified authentication type.

WindowsIdentity(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch Informationen in einem SerializationInfo-Stream dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by information in a SerializationInfo stream.

WindowsIdentity(String, String)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch den angegebenen UPN (User Principal Name, Benutzerprinzipalname) und den angegebenen Authentifizierungstyp dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified User Principal Name (UPN) and the specified authentication type.

WindowsIdentity(IntPtr, String, WindowsAccountType)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken, den angegebenen Authentifizierungstyp und den angegebenen Windows-Kontotyp dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token, the specified authentication type, and the specified Windows account type.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken, den angegebenen Authentifizierungstyp, den angegebenen Windows-Kontotyp und den angegebenen Authentifizierungsstatus dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token, the specified authentication type, the specified Windows account type, and the specified authentication status.

WindowsIdentity(IntPtr)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token.

public:
 WindowsIdentity(IntPtr userToken);
public WindowsIdentity (IntPtr userToken);
new System.Security.Principal.WindowsIdentity : nativeint -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr)

Parameter

userToken
IntPtr

Das Kontotoken für den Benutzer, für den der Code ausgeführt wird.The account token for the user on whose behalf the code is running.

Ausnahmen

userToken ist 0.userToken is 0.

- oder --or- userToken ist dupliziert und für Identitätswechsel ungültig.userToken is duplicated and invalid for impersonation.

Der Aufrufer verfügt nicht über die ordnungsgemäßen Berechtigungen.The caller does not have the correct permissions.

- oder --or-

Win32-Fehler.A Win32 error occurred.

Hinweise

In der folgenden Tabelle werden die anfänglichen Eigenschaftswerte für eine Instanz von WindowsIdentityangezeigt.The following table shows initial property values for an instance of WindowsIdentity.

EigenschaftProperty AnfangswertInitial value
AuthenticationType Negotiate
WindowsAccountType Normal
IsAuthenticated false

Hinweis

Sie können das durch userToken dargestellte Token abrufen, indem Sie nicht verwalteten Code aufrufen, z. b. die LogonUser Funktion der Windows-API.You can retrieve the token represented by userToken by calling unmanaged code such as the Windows API LogonUser function. Geben Sie userToken immer durch Aufrufen der Windows-API-CloseHandle Funktion frei.Always release userToken by calling the Windows API CloseHandle function. Weitere Informationen zum Aufrufen von nicht verwaltetem Code finden Sie unter verwenden nicht verwalteter DLL-Funktionen.For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

Sicherheit

SecurityPermission
für den Zugriff auf nicht verwalteten Code.for the ability to access unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(WindowsIdentity)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse unter Verwendung des angegebenen WindowsIdentity-Objekts.Initializes a new instance of the WindowsIdentity class by using the specified WindowsIdentity object.

protected:
 WindowsIdentity(System::Security::Principal::WindowsIdentity ^ identity);
protected WindowsIdentity (System.Security.Principal.WindowsIdentity identity);
new System.Security.Principal.WindowsIdentity : System.Security.Principal.WindowsIdentity -> System.Security.Principal.WindowsIdentity
Protected Sub New (identity As WindowsIdentity)

Parameter

identity
WindowsIdentity

Das Objekt, aus dem die neue Instanz von WindowsIdentity erstellt werden soll.The object from which to construct the new instance of WindowsIdentity.

WindowsIdentity(String)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch den angegebenen UPN (User Principal Name, Benutzerprinzipalname) dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified User Principal Name (UPN).

public:
 WindowsIdentity(System::String ^ sUserPrincipalName);
public WindowsIdentity (string sUserPrincipalName);
new System.Security.Principal.WindowsIdentity : string -> System.Security.Principal.WindowsIdentity
Public Sub New (sUserPrincipalName As String)

Parameter

sUserPrincipalName
String

Der UPN des Benutzers, für den der Code ausgeführt wird.The UPN for the user on whose behalf the code is running.

Ausnahmen

Windows hat den Windows NT-Statuscode STATUS_ACCESS_DENIED zurückgegeben.Windows returned the Windows NT status code STATUS_ACCESS_DENIED.

Es ist nicht genügend Arbeitsspeicher verfügbar.There is insufficient memory available.

Der Aufrufer verfügt nicht über die ordnungsgemäßen Berechtigungen.The caller does not have the correct permissions.

- oder --or-

Der Computer ist nicht mit einer Domäne verbunden, in der Windows 2003 oder höher ausgeführt wird.The computer is not attached to a Windows 2003 or later domain.

- oder --or-

Auf dem Computer wird nicht Windows 2003 oder höher ausgeführt.The computer is not running Windows 2003 or later.

- oder --or-

Der Benutzer ist kein Mitglied der Domäne, in der sich der Computer befindet.The user is not a member of the domain the computer is attached to.

Hinweise

Ein UPN hat das Format username@Domain Name. com, d. h. eine e-Mail-Adresse.A UPN has the format username@domainname.com, in other words, an email address. Der in sUserPrincipalName identifizierte UPN wird verwendet, um ein Token für diesen Benutzer über die LsaLogonUser Funktion der Windows-API abzurufen.The UPN identified in sUserPrincipalName is used to retrieve a token for that user through the Windows API LsaLogonUser function. Wiederum wird das Token verwendet, um den Benutzer zu identifizieren.In turn that token is used to identify the user. Eine Ausnahme kann zurückgegeben werden, weil die Anmeldung mit dem bereitgestellten UPN nicht möglich ist.An exception might be returned due to the inability to log on using the supplied UPN.

Hinweis

Dieser Konstruktor ist nur für die Verwendung auf Computern vorgesehen, die mit Windows Server 2003 oder höher verknüpft sind.This constructor is intended for use only on computers joined to Windows Server 2003 or later domains. Für frühere Domänen Typen wird eine Ausnahme ausgelöst.An exception is thrown for earlier domain types. Diese Einschränkung ist darauf zurückzuführen, dass dieser Konstruktor die KERB_S4U_LOGON Strukturverwendet, die zuerst in Windows Server 2003 eingeführt wurde.This restriction is due to the fact that this constructor uses the KERB_S4U_LOGON structure, which was first introduced in Windows Server 2003. Außerdem benötigt dieser Konstruktor Lesezugriff auf das Attribut "Token-Groups-Global-and-Universal" (tggau) des Ziel Benutzerkontos.Also, this constructor requires read access to the token-groups-global-and-universal (TGGAU) attribute on the target user account.

Sicherheit

SecurityPermission
für den Zugriff auf nicht verwalteten Code.for the ability to access unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(IntPtr, String)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken und den angegebenen Authentifizierungstyp dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token and the specified authentication type.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type);
public WindowsIdentity (IntPtr userToken, string type);
new System.Security.Principal.WindowsIdentity : nativeint * string -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String)

Parameter

userToken
IntPtr

Das Kontotoken für den Benutzer, für den der Code ausgeführt wird.The account token for the user on whose behalf the code is running.

type
String

(Nur für Informationszwecke.) Der zur Identifizierung des Benutzers verwendete Authentifizierungstyp.(Informational use only.) The type of authentication used to identify the user.

Ausnahmen

userToken ist 0.userToken is 0.

- oder --or- userToken ist dupliziert und für Identitätswechsel ungültig.userToken is duplicated and invalid for impersonation.

Der Aufrufer verfügt nicht über die ordnungsgemäßen Berechtigungen.The caller does not have the correct permissions.

- oder --or-

Win32-Fehler.A Win32 error occurred.

Beispiele

Der folgende Code zeigt die Verwendung des WindowsIdentity-Konstruktors zum Erstellen einer neuen Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Konto Token und den angegebenen Authentifizierungstyp dargestellt wird.The following code shows the use of the WindowsIdentity constructor to create a new instance of the WindowsIdentity class for the user represented by the specified Windows account token and the specified authentication type. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die WindowsIdentity-Klasse bereitgestellt wird.This code example is part of a larger example provided for the WindowsIdentity class.

void IntPtrStringConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token 
   // and the specified authentication type.
   String^ authenticationType = "WindowsAuthentication";
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}

private static void IntPtrStringConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token 
    // and the specified authentication type.
    string authenticationType = "WindowsAuthentication";
    WindowsIdentity windowsIdentity =
                    new WindowsIdentity(logonToken, authenticationType);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPtrStringConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token 
    ' and the specified authentication type
    Dim authenticationType = "WindowsAuthentication"
    Dim windowsIdentity As _
        New WindowsIdentity(logonToken, authenticationType)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Hinweise

In der folgenden Tabelle werden die anfänglichen Eigenschaftswerte für eine Instanz von WindowsIdentityangezeigt.The following table shows initial property values for an instance of WindowsIdentity.

EigenschaftProperty AnfangswertInitial value
WindowsAccountType Normal
IsAuthenticated false

Der Wert des type-Parameters wird verwendet, um den AuthenticationType-Parameter festzulegen.The value of the type parameter is used to set the AuthenticationType parameter. Wenn type nullist, legt das Sicherheitssystem AuthenticationType auf Negotiate unter Windows Vista und höheren Versionen des Windows-Betriebssystems und Kerberos auf früheren Versionen des Windows-Betriebssystems fest.If type is null, the security system sets AuthenticationType to Negotiate on Windows Vista and later versions of the Windows operating system, and to Kerberos on earlier versions of the Windows operating system. Das Sicherheitssystem verwendet diesen Wert nicht. Dies dient nur zur Informations Verwendung.The security system does not use this value; it is for informational use only.

Hinweis

Sie können das durch userToken dargestellte Token abrufen, indem Sie nicht verwalteten Code aufrufen, z. b. die LogonUser Funktion der Windows-API.You can retrieve the token represented by userToken by calling unmanaged code such as the Windows API LogonUser function. Geben Sie userToken immer durch Aufrufen der Windows-API-CloseHandle Funktion frei.Always release userToken by calling the Windows API CloseHandle function. Weitere Informationen zum Aufrufen von nicht verwaltetem Code finden Sie unter verwenden nicht verwalteter DLL-Funktionen.For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

Sicherheit

SecurityPermission
für den Zugriff auf nicht verwalteten Code.for the ability to access unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch Informationen in einem SerializationInfo-Stream dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by information in a SerializationInfo stream.

public:
 WindowsIdentity(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
public WindowsIdentity (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
Public Sub New (info As SerializationInfo, context As StreamingContext)

Parameter

info
SerializationInfo

Das Objekt mit den Kontoinformationen für den Benutzer.The object containing the account information for the user.

context
StreamingContext

Ein Objekt, das die Merkmale des Streams angibt.An object that indicates the stream characteristics.

Ausnahmen

Eine WindowsIdentity kann nicht prozessübergreifend serialisiert werden.A WindowsIdentity cannot be serialized across processes.

Der Aufrufer verfügt nicht über die ordnungsgemäßen Berechtigungen.The caller does not have the correct permissions.

- oder --or-

Win32-Fehler.A Win32 error occurred.

Hinweise

Wichtig

Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar.Calling this method with untrusted data is a security risk. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf.Call this method only with trusted data. Weitere Informationen finden Sie unter Data Validation (Datenüberprüfung).For more information, see Data Validation.

Sicherheit

SecurityPermission
, um das Prinzipal Objekt zu bearbeiten.for ability to manipulate the principal object. Zugeordnete Enumeration: ControlPrincipalAssociated enumeration: ControlPrincipal.

WindowsIdentity(String, String)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch den angegebenen UPN (User Principal Name, Benutzerprinzipalname) und den angegebenen Authentifizierungstyp dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified User Principal Name (UPN) and the specified authentication type.

public:
 WindowsIdentity(System::String ^ sUserPrincipalName, System::String ^ type);
public WindowsIdentity (string sUserPrincipalName, string type);
new System.Security.Principal.WindowsIdentity : string * string -> System.Security.Principal.WindowsIdentity
Public Sub New (sUserPrincipalName As String, type As String)

Parameter

sUserPrincipalName
String

Der UPN des Benutzers, für den der Code ausgeführt wird.The UPN for the user on whose behalf the code is running.

type
String

(Nur für Informationszwecke.) Der zur Identifizierung des Benutzers verwendete Authentifizierungstyp.(Informational use only.) The type of authentication used to identify the user.

Ausnahmen

Windows hat den Windows NT-Statuscode STATUS_ACCESS_DENIED zurückgegeben.Windows returned the Windows NT status code STATUS_ACCESS_DENIED.

Es ist nicht genügend Arbeitsspeicher verfügbar.There is insufficient memory available.

Der Aufrufer verfügt nicht über die ordnungsgemäßen Berechtigungen.The caller does not have the correct permissions.

- oder --or-

Der Computer ist nicht mit einer Domäne verbunden, in der Windows 2003 oder höher ausgeführt wird.The computer is not attached to a Windows 2003 or later domain.

- oder --or-

Auf dem Computer wird nicht Windows 2003 oder höher ausgeführt.The computer is not running Windows 2003 or later.

- oder --or-

Der Benutzer ist kein Mitglied der Domäne, in der sich der Computer befindet.The user is not a member of the domain the computer is attached to.

Hinweise

Der Wert des type-Parameters wird verwendet, um den AuthenticationType-Parameter festzulegen.The value of the type parameter is used to set the AuthenticationType parameter. Wenn type nullist, legt das Sicherheitssystem AuthenticationType auf Negotiate unter Windows Vista und höheren Versionen des Windows-Betriebssystems und Kerberos auf früheren Versionen des Windows-Betriebssystems fest.If type is null, the security system sets AuthenticationType to Negotiate on Windows Vista and later versions of the Windows operating system, and to Kerberos on earlier versions of the Windows operating system. Das Sicherheitssystem verwendet diesen Wert nicht. Dies dient nur zur Informations Verwendung.The security system does not use this value; it is for informational use only.

Der in sUserPrincipalName identifizierte UPN wird verwendet, um ein Token für diesen Benutzer über die LsaLogonUser Funktion der Windows-API abzurufen.The UPN identified in sUserPrincipalName is used to retrieve a token for that user through the Windows API LsaLogonUser function. Wiederum wird das Token verwendet, um den Benutzer zu identifizieren.In turn that token is used to identify the user. Eine Ausnahme kann zurückgegeben werden, weil die Anmeldung mit dem bereitgestellten UPN nicht möglich ist.An exception might be returned due to the inability to log on using the supplied UPN.

Hinweis

Dieser Konstruktor ist nur für die Verwendung auf Computern vorgesehen, die mit Windows Server 2003 oder höher verknüpft sind.This constructor is intended for use only on computers joined to Windows Server 2003 or later domains. Für frühere Domänen Typen wird eine Ausnahme ausgelöst.An exception is thrown for earlier domain types. Diese Einschränkung ist darauf zurückzuführen, dass dieser Konstruktor die KERB_S4U_LOGON Strukturverwendet, die zuerst in Windows Server 2003 eingeführt wurde.This restriction is due to the fact that this constructor uses the KERB_S4U_LOGON structure, which was first introduced in Windows Server 2003. Außerdem benötigt dieser Konstruktor Lesezugriff auf das Attribut "Token-Groups-Global-and-Universal" (tggau) des Ziel Benutzerkontos.Also, this constructor requires read access to the token-groups-global-and-universal (TGGAU) attribute on the target user account.

Sicherheit

SecurityPermission
für den Zugriff auf nicht verwalteten Code.for the ability to access unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(IntPtr, String, WindowsAccountType)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken, den angegebenen Authentifizierungstyp und den angegebenen Windows-Kontotyp dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token, the specified authentication type, and the specified Windows account type.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type, System::Security::Principal::WindowsAccountType acctType);
public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType);
new System.Security.Principal.WindowsIdentity : nativeint * string * System.Security.Principal.WindowsAccountType -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String, acctType As WindowsAccountType)

Parameter

userToken
IntPtr

Das Kontotoken für den Benutzer, für den der Code ausgeführt wird.The account token for the user on whose behalf the code is running.

type
String

(Nur für Informationszwecke.) Der zur Identifizierung des Benutzers verwendete Authentifizierungstyp.(Informational use only.) The type of authentication used to identify the user.

acctType
WindowsAccountType

Einer der Enumerationswerte.One of the enumeration values.

Ausnahmen

userToken ist 0.userToken is 0.

- oder --or- userToken ist dupliziert und für Identitätswechsel ungültig.userToken is duplicated and invalid for impersonation.

Der Aufrufer verfügt nicht über die ordnungsgemäßen Berechtigungen.The caller does not have the correct permissions.

- oder --or-

Win32-Fehler.A Win32 error occurred.

Beispiele

Der folgende Code zeigt die Verwendung des WindowsIdentity-Konstruktors zum Erstellen einer neuen Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Konto Token, den angegebenen Authentifizierungstyp und den angegebenen Windows-Kontotyp dargestellt wird.The following code shows the use of the WindowsIdentity constructor to create a new instance of the WindowsIdentity class for the user represented by the specified Windows account token, the specified authentication type, and the specified Windows account type. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die WindowsIdentity-Klasse bereitgestellt wird.This code example is part of a larger example provided for the WindowsIdentity class.

void IntPtrStringTypeConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token,
   // and the specified authentication type and Windows account type.
   String^ authenticationType = "WindowsAuthentication";
   WindowsAccountType guestAccount = WindowsAccountType::Guest;
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}
private static void IntPtrStringTypeConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token,
    // and the specified authentication type, and Windows account type.
    string authenticationType = "WindowsAuthentication";
    WindowsAccountType guestAccount = WindowsAccountType.Guest;
    WindowsIdentity windowsIdentity =
        new WindowsIdentity(logonToken, authenticationType, guestAccount);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPtrStringTypeConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token,
    ' and the specified authentication type and Windows account type.
    Dim authenticationType As String = "WindowsAuthentication"
    Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest
    Dim windowsIdentity As _
        New WindowsIdentity(logonToken, authenticationType, guestAccount)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Hinweise

In der folgenden Tabelle werden die anfänglichen Eigenschaftswerte für eine Instanz von WindowsIdentityangezeigt.The following table shows initial property values for an instance of WindowsIdentity.

EigenschaftProperty AnfangswertInitial Value
IsAuthenticated false

Der Wert des type-Parameters wird verwendet, um den AuthenticationType-Parameter festzulegen.The value of the type parameter is used to set the AuthenticationType parameter. Wenn type nullist, legt das Sicherheitssystem AuthenticationType auf Negotiate unter Windows Vista und höheren Versionen des Windows-Betriebssystems und Kerberos auf früheren Versionen des Windows-Betriebssystems fest.If type is null, the security system sets AuthenticationType to Negotiate on Windows Vista and later versions of the Windows operating system, and to Kerberos on earlier versions of the Windows operating system. Das Sicherheitssystem verwendet diesen Wert nicht. Dies dient nur zur Informations Verwendung.The security system does not use this value; it is for informational use only.

Hinweis

Sie können das durch userToken dargestellte Token abrufen, indem Sie nicht verwalteten Code aufrufen, z. b. die LogonUser Funktion der Windows-API.You can retrieve the token represented by userToken by calling unmanaged code such as the Windows API LogonUser function. Geben Sie userToken immer durch Aufrufen der Windows-API-CloseHandle Funktion frei.Always release userToken by calling the Windows API CloseHandle function. Weitere Informationen zum Aufrufen von nicht verwaltetem Code finden Sie unter verwenden nicht verwalteter DLL-Funktionen.For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

Sicherheit

SecurityPermission
für den Zugriff auf nicht verwalteten Code.for the ability to access unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Initialisiert eine neue Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Kontotoken, den angegebenen Authentifizierungstyp, den angegebenen Windows-Kontotyp und den angegebenen Authentifizierungsstatus dargestellt wird.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token, the specified authentication type, the specified Windows account type, and the specified authentication status.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type, System::Security::Principal::WindowsAccountType acctType, bool isAuthenticated);
public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated);
new System.Security.Principal.WindowsIdentity : nativeint * string * System.Security.Principal.WindowsAccountType * bool -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String, acctType As WindowsAccountType, isAuthenticated As Boolean)

Parameter

userToken
IntPtr

Das Kontotoken für den Benutzer, für den der Code ausgeführt wird.The account token for the user on whose behalf the code is running.

type
String

(Nur für Informationszwecke.) Der zur Identifizierung des Benutzers verwendete Authentifizierungstyp.(Informational use only.) The type of authentication used to identify the user.

acctType
WindowsAccountType

Einer der Enumerationswerte.One of the enumeration values.

isAuthenticated
Boolean

true, um anzugeben, dass der Benutzer authentifiziert ist, andernfalls false.true to indicate that the user is authenticated; otherwise, false.

Ausnahmen

userToken ist 0.userToken is 0.

- oder --or- userToken ist dupliziert und für Identitätswechsel ungültig.userToken is duplicated and invalid for impersonation.

Der Aufrufer verfügt nicht über die ordnungsgemäßen Berechtigungen.The caller does not have the correct permissions.

- oder --or-

Win32-Fehler.A Win32 error occurred.

Beispiele

Der folgende Code zeigt die Verwendung des WindowsIdentity-Konstruktors zum Erstellen einer neuen Instanz der WindowsIdentity-Klasse für den Benutzer, der durch das angegebene Windows-Konto Token, den angegebenen Authentifizierungstyp, den angegebenen Windows-Kontotyp und den angegebenen Authentifizierungs Status dargestellt wird.The following code shows the use of the WindowsIdentity constructor to create a new instance of the WindowsIdentity class for the user represented by the specified Windows account token, the specified authentication type, the specified Windows account type, and the specified authentication status. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die WindowsIdentity-Klasse bereitgestellt wird.This code example is part of a larger example provided for the WindowsIdentity class.

void IntPrtStringTypeBoolConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token,
   // and the specified authentication type, Windows account type, and
   // authentication flag.
   String^ authenticationType = "WindowsAuthentication";
   WindowsAccountType guestAccount = WindowsAccountType::Guest;
   bool isAuthenticated = true;
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount,isAuthenticated );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}
private static void IntPrtStringTypeBoolConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token,
    // and the specified authentication type, Windows account type, and
    // authentication flag.
    string authenticationType = "WindowsAuthentication";
    WindowsAccountType guestAccount = WindowsAccountType.Guest;
    bool isAuthenticated = true;
    WindowsIdentity windowsIdentity = new WindowsIdentity(
        logonToken, authenticationType, guestAccount, isAuthenticated);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPrtStringTypeBoolConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token,
    ' and the specified authentication type, Windows account type, and
    ' authentication flag.
    Dim authenticationType As String = "WindowsAuthentication"
    Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest
    Dim isAuthenticated As Boolean = True
    Dim windowsIdentity As New WindowsIdentity( _
        logonToken, authenticationType, guestAccount, isAuthenticated)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Hinweise

Der Wert des type-Parameters wird verwendet, um den AuthenticationType-Parameter festzulegen.The value of the type parameter is used to set the AuthenticationType parameter. Wenn type nullist, legt das Sicherheitssystem AuthenticationType auf Negotiate unter Windows Vista und höheren Versionen des Windows-Betriebssystems und Kerberos auf früheren Versionen des Windows-Betriebssystems fest.If type is null, the security system sets AuthenticationType to Negotiate on Windows Vista and later versions of the Windows operating system, and to Kerberos on earlier versions of the Windows operating system. Das Sicherheitssystem verwendet diesen Wert nicht. Dies dient nur zur Informations Verwendung.The security system does not use this value; it is for informational use only.

Sie können das durch userToken dargestellte Token abrufen, indem Sie nicht verwalteten Code aufrufen, z. b. die LogonUser Funktion der Windows-API.You can retrieve the token represented by userToken by calling unmanaged code such as the Windows API LogonUser function. Geben Sie userToken immer durch Aufrufen der Windows-API-CloseHandle Funktion frei.Always release userToken by calling the Windows API CloseHandle function. Weitere Informationen zum Aufrufen von nicht verwaltetem Code finden Sie unter verwenden nicht verwalteter DLL-Funktionen.For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

Sicherheit

SecurityPermission
für den Zugriff auf nicht verwalteten Code.for the ability to access unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

Gilt für: