WindowsIdentity Constructors

Definitie

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse.

Overloads

Name Description
WindowsIdentity(IntPtr)

Initialiseert een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows-accounttoken.

WindowsIdentity(WindowsIdentity)

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse met behulp van het opgegeven WindowsIdentity object.

WindowsIdentity(String)

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse voor de gebruiker die wordt vertegenwoordigd door de opgegeven UPN (User Principal Name).

WindowsIdentity(IntPtr, String)

Initialiseert een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows accounttoken en het opgegeven verificatietype.

WindowsIdentity(SerializationInfo, StreamingContext)
Verouderd.

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse voor de gebruiker die wordt vertegenwoordigd door informatie in een SerializationInfo stream.

WindowsIdentity(String, String)

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse voor de gebruiker die wordt vertegenwoordigd door de opgegeven UPN (User Principal Name) en het opgegeven verificatietype.

WindowsIdentity(IntPtr, String, WindowsAccountType)

Initialiseert een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows-accounttoken, het opgegeven verificatietype en het opgegeven Windows accounttype.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Initialiseert een nieuw exemplaar van de WindowsIdentity-klasse voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows accounttoken, het opgegeven verificatietype, het opgegeven Windows accounttype en de opgegeven verificatiestatus.

WindowsIdentity(IntPtr)

Initialiseert een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows-accounttoken.

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

Parameters

userToken
IntPtr

nativeint

Het accounttoken voor de gebruiker namens wie de code wordt uitgevoerd.

Uitzonderingen

userToken is 0.

– of –

userToken is gedupliceerd en ongeldig voor imitatie.

De aanroeper heeft niet de juiste machtigingen.

– of –

Er is een Win32-fout opgetreden.

Opmerkingen

In de volgende tabel ziet u de oorspronkelijke eigenschapswaarden voor een exemplaar van WindowsIdentity.

Vastgoed Initiële waarde
AuthenticationType Negotiate
WindowsAccountType Normal
IsAuthenticated false

Note

U kunt het token ophalen dat wordt vertegenwoordigd door userToken door niet-beheerde code aan te roepen, zoals de Windows API-LogonUser-functie. Laat altijd userToken los door de functie Windows API CloseHandle aan te roepen. Zie Onbeheerde DLL-functies gebruiken voor meer informatie over het aanroepen van niet-beheerde code.

Van toepassing op

WindowsIdentity(WindowsIdentity)

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse met behulp van het opgegeven 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)

Parameters

identity
WindowsIdentity

Het object waaruit het nieuwe exemplaar van WindowsIdentity.

Van toepassing op

WindowsIdentity(String)

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse voor de gebruiker die wordt vertegenwoordigd door de opgegeven UPN (User Principal Name).

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)

Parameters

sUserPrincipalName
String

De UPN voor de gebruiker namens wie de code wordt uitgevoerd.

Uitzonderingen

Windows de Windows NT-statuscode STATUS_ACCESS_DENIED geretourneerd.

Er is onvoldoende geheugen beschikbaar.

De aanroeper heeft niet de juiste machtigingen.

– of –

De computer is niet gekoppeld aan een domein van Windows 2003 of hoger.

– of –

De computer wordt niet uitgevoerd Windows 2003 of hoger.

– of –

De gebruiker is geen lid van het domein waaraan de computer is gekoppeld.

Opmerkingen

Een UPN heeft de notatiegebruikersnaamdomeinnaam@.com met andere woorden een e-mailadres. De UPN die is geïdentificeerd in sUserPrincipalName wordt gebruikt om een token voor die gebruiker op te halen via de Windows API-LsaLogonUser-functie. Op zijn beurt wordt dat token gebruikt om de gebruiker te identificeren. Een uitzondering kan worden geretourneerd vanwege het niet kunnen aanmelden met behulp van de opgegeven UPN.

Note

Deze constructor is alleen bedoeld voor gebruik op computers die zijn gekoppeld aan Windows Server 2003- of hogerdomeinen. Er wordt een uitzondering gegenereerd voor eerdere domeintypen. Deze beperking is te wijten aan het feit dat deze constructor gebruikmaakt van de KERB_S4U_LOGON structuur, die voor het eerst is geïntroduceerd in Windows Server 2003. Deze constructor vereist ook leestoegang tot het kenmerk token-groups-global-and-universal (TGGAU) in het doelgebruikersaccount.

Van toepassing op

WindowsIdentity(IntPtr, String)

Initialiseert een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows accounttoken en het opgegeven verificatietype.

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)

Parameters

userToken
IntPtr

nativeint

Het accounttoken voor de gebruiker namens wie de code wordt uitgevoerd.

type
String

(Alleen informatief gebruik.) Het type verificatie dat wordt gebruikt om de gebruiker te identificeren.

Uitzonderingen

userToken is 0.

– of –

userToken is gedupliceerd en ongeldig voor imitatie.

De aanroeper heeft niet de juiste machtigingen.

– of –

Er is een Win32-fout opgetreden.

Voorbeelden

De volgende code toont het gebruik van de WindowsIdentity constructor voor het maken van een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows accounttoken en het opgegeven verificatietype. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de WindowsIdentity klasse.

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

Opmerkingen

In de volgende tabel ziet u de oorspronkelijke eigenschapswaarden voor een exemplaar van WindowsIdentity.

Vastgoed Initiële waarde
WindowsAccountType Normal
IsAuthenticated false

De waarde van de type parameter wordt gebruikt om de AuthenticationType parameter in te stellen. Als type is null, stelt het beveiligingssysteem AuthenticationType in op Negotiate op Windows Vista en latere versies van het Windows besturingssysteem en op Kerberos op eerdere versies van het Windows besturingssysteem. Het beveiligingssysteem gebruikt deze waarde niet; het is alleen bedoeld voor informatief gebruik.

Note

U kunt het token ophalen dat wordt vertegenwoordigd door userToken door niet-beheerde code aan te roepen, zoals de Windows API-LogonUser-functie. Laat altijd userToken los door de functie Windows API CloseHandle aan te roepen. Zie Onbeheerde DLL-functies gebruiken voor meer informatie over het aanroepen van niet-beheerde code.

Van toepassing op

WindowsIdentity(SerializationInfo, StreamingContext)

Let op

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse voor de gebruiker die wordt vertegenwoordigd door informatie in een SerializationInfo stream.

public:
 WindowsIdentity(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public WindowsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
public WindowsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
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)

Parameters

info
SerializationInfo

Het object met de accountgegevens voor de gebruiker.

context
StreamingContext

Een object dat de stroomkenmerken aangeeft.

Kenmerken

Uitzonderingen

Een WindowsIdentity kan niet worden geserialiseerd tussen processen.

De aanroeper heeft niet de juiste machtigingen.

– of –

Er is een Win32-fout opgetreden.

Opmerkingen

Important

Het aanroepen van deze methode met niet-vertrouwde gegevens is een beveiligingsrisico. Roep deze methode alleen aan met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Van toepassing op

WindowsIdentity(String, String)

Initialiseert een nieuw exemplaar van de WindowsIdentity klasse voor de gebruiker die wordt vertegenwoordigd door de opgegeven UPN (User Principal Name) en het opgegeven verificatietype.

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)

Parameters

sUserPrincipalName
String

De UPN voor de gebruiker namens wie de code wordt uitgevoerd.

type
String

(Alleen informatief gebruik.) Het type verificatie dat wordt gebruikt om de gebruiker te identificeren.

Uitzonderingen

Windows de Windows NT-statuscode STATUS_ACCESS_DENIED geretourneerd.

Er is onvoldoende geheugen beschikbaar.

De aanroeper heeft niet de juiste machtigingen.

– of –

De computer is niet gekoppeld aan een domein van Windows 2003 of hoger.

– of –

De computer wordt niet uitgevoerd Windows 2003 of hoger.

– of –

De gebruiker is geen lid van het domein waaraan de computer is gekoppeld.

Opmerkingen

De waarde van de type parameter wordt gebruikt om de AuthenticationType parameter in te stellen. Als type is null, stelt het beveiligingssysteem AuthenticationType in op Negotiate op Windows Vista en latere versies van het Windows besturingssysteem en op Kerberos op eerdere versies van het Windows besturingssysteem. Het beveiligingssysteem gebruikt deze waarde niet; het is alleen bedoeld voor informatief gebruik.

De UPN die is geïdentificeerd in sUserPrincipalName wordt gebruikt om een token voor die gebruiker op te halen via de Windows API-LsaLogonUser-functie. Op zijn beurt wordt dat token gebruikt om de gebruiker te identificeren. Een uitzondering kan worden geretourneerd vanwege het niet kunnen aanmelden met behulp van de opgegeven UPN.

Note

Deze constructor is alleen bedoeld voor gebruik op computers die zijn gekoppeld aan Windows Server 2003- of hogerdomeinen. Er wordt een uitzondering gegenereerd voor eerdere domeintypen. Deze beperking is te wijten aan het feit dat deze constructor gebruikmaakt van de KERB_S4U_LOGON structuur, die voor het eerst is geïntroduceerd in Windows Server 2003. Deze constructor vereist ook leestoegang tot het kenmerk token-groups-global-and-universal (TGGAU) in het doelgebruikersaccount.

Van toepassing op

WindowsIdentity(IntPtr, String, WindowsAccountType)

Initialiseert een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows-accounttoken, het opgegeven verificatietype en het opgegeven Windows accounttype.

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)

Parameters

userToken
IntPtr

nativeint

Het accounttoken voor de gebruiker namens wie de code wordt uitgevoerd.

type
String

(Alleen informatief gebruik.) Het type verificatie dat wordt gebruikt om de gebruiker te identificeren.

acctType
WindowsAccountType

Een van de opsommingswaarden.

Uitzonderingen

userToken is 0.

– of –

userToken is gedupliceerd en ongeldig voor imitatie.

De aanroeper heeft niet de juiste machtigingen.

– of –

Er is een Win32-fout opgetreden.

Voorbeelden

De volgende code toont het gebruik van de WindowsIdentity constructor voor het maken van een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows accounttoken, het opgegeven verificatietype en het opgegeven Windows-accounttype. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de WindowsIdentity klasse.

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

Opmerkingen

In de volgende tabel ziet u de oorspronkelijke eigenschapswaarden voor een exemplaar van WindowsIdentity.

Vastgoed Initiële waarde
IsAuthenticated false

De waarde van de type parameter wordt gebruikt om de AuthenticationType parameter in te stellen. Als type is null, stelt het beveiligingssysteem AuthenticationType in op Negotiate op Windows Vista en latere versies van het Windows besturingssysteem en op Kerberos op eerdere versies van het Windows besturingssysteem. Het beveiligingssysteem gebruikt deze waarde niet; het is alleen bedoeld voor informatief gebruik.

Note

U kunt het token ophalen dat wordt vertegenwoordigd door userToken door niet-beheerde code aan te roepen, zoals de Windows API-LogonUser-functie. Laat altijd userToken los door de functie Windows API CloseHandle aan te roepen. Zie Onbeheerde DLL-functies gebruiken voor meer informatie over het aanroepen van niet-beheerde code.

Van toepassing op

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Initialiseert een nieuw exemplaar van de WindowsIdentity-klasse voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows accounttoken, het opgegeven verificatietype, het opgegeven Windows accounttype en de opgegeven verificatiestatus.

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)

Parameters

userToken
IntPtr

nativeint

Het accounttoken voor de gebruiker namens wie de code wordt uitgevoerd.

type
String

(Alleen informatief gebruik.) Het type verificatie dat wordt gebruikt om de gebruiker te identificeren.

acctType
WindowsAccountType

Een van de opsommingswaarden.

isAuthenticated
Boolean

true om aan te geven dat de gebruiker is geverifieerd; anders, false.

Uitzonderingen

userToken is 0.

– of –

userToken is gedupliceerd en ongeldig voor imitatie.

De aanroeper heeft niet de juiste machtigingen.

– of –

Er is een Win32-fout opgetreden.

Voorbeelden

De volgende code toont het gebruik van de WindowsIdentity constructor voor het maken van een nieuw exemplaar van de klasse WindowsIdentity voor de gebruiker die wordt vertegenwoordigd door het opgegeven Windows accounttoken, het opgegeven verificatietype, het opgegeven Windows accounttype en de opgegeven verificatiestatus. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de WindowsIdentity klasse.

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

Opmerkingen

De waarde van de type parameter wordt gebruikt om de AuthenticationType parameter in te stellen. Als type is null, stelt het beveiligingssysteem AuthenticationType in op Negotiate op Windows Vista en latere versies van het Windows besturingssysteem en op Kerberos op eerdere versies van het Windows besturingssysteem. Het beveiligingssysteem gebruikt deze waarde niet; het is alleen bedoeld voor informatief gebruik.

U kunt het token ophalen dat wordt vertegenwoordigd door userToken door niet-beheerde code aan te roepen, zoals de Windows API-LogonUser-functie. Laat altijd userToken los door de functie Windows API CloseHandle aan te roepen. Zie Onbeheerde DLL-functies gebruiken voor meer informatie over het aanroepen van niet-beheerde code.

Van toepassing op