WindowsIdentity Constructors
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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
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
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
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.