WindowsIdentity Konstruktorer
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Initierar en ny instans av WindowsIdentity klassen.
Överlagringar
| Name | Description |
|---|---|
| WindowsIdentity(IntPtr) |
Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken. |
| WindowsIdentity(WindowsIdentity) |
Initierar en ny instans av WindowsIdentity klassen med hjälp av det angivna WindowsIdentity objektet. |
| WindowsIdentity(String) |
Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av det angivna UPN (User Principal Name). |
| WindowsIdentity(IntPtr, String) |
Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken och den angivna autentiseringstypen. |
| WindowsIdentity(SerializationInfo, StreamingContext) |
Föråldrad.
Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av information i en SerializationInfo dataström. |
| WindowsIdentity(String, String) |
Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av det angivna UPN (User Principal Name) och den angivna autentiseringstypen. |
| WindowsIdentity(IntPtr, String, WindowsAccountType) |
Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen och den angivna Windows kontotypen. |
| WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen, den angivna Windows kontotypen och den angivna autentiseringsstatusen. |
WindowsIdentity(IntPtr)
Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken.
public:
WindowsIdentity(IntPtr userToken);
public WindowsIdentity(IntPtr userToken);
new System.Security.Principal.WindowsIdentity : nativeint -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr)
Parametrar
- userToken
-
IntPtr
nativeint
Kontotoken för användaren för vars räkning koden körs.
Undantag
Kommentarer
I följande tabell visas inledande egenskapsvärden för en instans av WindowsIdentity.
| Fastighet | Initialt värde |
|---|---|
| AuthenticationType | Negotiate |
| WindowsAccountType | Normal |
| IsAuthenticated | false |
Note
Du kan hämta token som representeras av userToken genom att anropa ohanterad kod, till exempel funktionen Windows API LogonUser. Släpp alltid userToken genom att anropa funktionen Windows API CloseHandle. Mer information om hur du anropar ohanterad kod finns i Använda ohanterade DLL-funktioner.
Gäller för
WindowsIdentity(WindowsIdentity)
Initierar en ny instans av WindowsIdentity klassen med hjälp av det angivna WindowsIdentity objektet.
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)
Parametrar
- identity
- WindowsIdentity
Objektet som den nya instansen av ska konstrueras från WindowsIdentity.
Gäller för
WindowsIdentity(String)
Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av det angivna 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)
Parametrar
- sUserPrincipalName
- String
UPN för användaren för vars räkning koden körs.
Undantag
Windows returnerade Windows NT-statuskoden STATUS_ACCESS_DENIED.
Det finns inte tillräckligt med minne.
Anroparen har inte rätt behörigheter.
-eller-
Datorn är inte ansluten till en Windows 2003 eller senare domän.
-eller-
Datorn körs inte Windows 2003 eller senare.
-eller-
Användaren är inte medlem i domänen som datorn är ansluten till.
Kommentarer
Ett UPN har formatet användarnamn@domännamn.com med andra ord en e-postadress. UPN som identifieras i sUserPrincipalName används för att hämta en token för användaren via funktionen Windows API LsaLogonUser. Den token används i sin tur för att identifiera användaren. Ett undantag kan returneras på grund av att det inte går att logga in med det angivna UPN:et.
Note
Den här konstruktorn är endast avsedd att användas på datorer som är anslutna till Windows Server domäner från 2003 eller senare. Ett undantag utlöses för tidigare domäntyper. Den här begränsningen beror på att konstruktorn använder strukturen KERB_S4U_LOGON, som först infördes i Windows Server 2003. Den här konstruktorn kräver också läsåtkomst till attributet token-groups-global-and-universal (TGGAU) på målanvändarkontot.
Gäller för
WindowsIdentity(IntPtr, String)
Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken och den angivna autentiseringstypen.
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)
Parametrar
- userToken
-
IntPtr
nativeint
Kontotoken för användaren för vars räkning koden körs.
- type
- String
(Endast informationsanvändning.) Den typ av autentisering som används för att identifiera användaren.
Undantag
Exempel
Följande kod visar användningen av konstruktorn WindowsIdentity för att skapa en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken och den angivna autentiseringstypen. Det här kodexemplet är en del av ett större exempel för WindowsIdentity klassen.
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
Kommentarer
I följande tabell visas inledande egenskapsvärden för en instans av WindowsIdentity.
| Fastighet | Initialt värde |
|---|---|
| WindowsAccountType | Normal |
| IsAuthenticated | false |
Värdet för parametern type används för att ange parametern AuthenticationType . Om type är null ställer säkerhetssystemet in AuthenticationType till Negotiate på Windows Vista och senare versioner av Windows operativsystem, och till Kerberos på tidigare versioner av Windows operativsystem. Säkerhetssystemet använder inte det här värdet. det är endast för informationsanvändning.
Note
Du kan hämta token som representeras av userToken genom att anropa ohanterad kod, till exempel funktionen Windows API LogonUser. Släpp alltid userToken genom att anropa funktionen Windows API CloseHandle. Mer information om hur du anropar ohanterad kod finns i Använda ohanterade DLL-funktioner.
Gäller för
WindowsIdentity(SerializationInfo, StreamingContext)
Varning
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av information i en SerializationInfo dataström.
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)
Parametrar
- info
- SerializationInfo
Objektet som innehåller kontoinformationen för användaren.
- context
- StreamingContext
Ett objekt som anger strömegenskaperna.
- Attribut
Undantag
Det går inte att serialisera A WindowsIdentity mellan processer.
Kommentarer
Important
Det är en säkerhetsrisk att anropa den här metoden med data som inte är betrodda. Anropa endast den här metoden med betrodda data. För mer information, se Verifiera alla indata.
Gäller för
WindowsIdentity(String, String)
Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av det angivna UPN (User Principal Name) och den angivna autentiseringstypen.
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)
Parametrar
- sUserPrincipalName
- String
UPN för användaren för vars räkning koden körs.
- type
- String
(Endast informationsanvändning.) Den typ av autentisering som används för att identifiera användaren.
Undantag
Windows returnerade Windows NT-statuskoden STATUS_ACCESS_DENIED.
Det finns inte tillräckligt med minne.
Anroparen har inte rätt behörigheter.
-eller-
Datorn är inte ansluten till en Windows 2003 eller senare domän.
-eller-
Datorn körs inte Windows 2003 eller senare.
-eller-
Användaren är inte medlem i domänen som datorn är ansluten till.
Kommentarer
Värdet för parametern type används för att ange parametern AuthenticationType . Om type är null ställer säkerhetssystemet in AuthenticationType till Negotiate på Windows Vista och senare versioner av Windows operativsystem, och till Kerberos på tidigare versioner av Windows operativsystem. Säkerhetssystemet använder inte det här värdet. det är endast för informationsanvändning.
UPN som identifieras i sUserPrincipalName används för att hämta en token för användaren via funktionen Windows API LsaLogonUser. Den token används i sin tur för att identifiera användaren. Ett undantag kan returneras på grund av att det inte går att logga in med det angivna UPN:et.
Note
Den här konstruktorn är endast avsedd att användas på datorer som är anslutna till Windows Server domäner från 2003 eller senare. Ett undantag utlöses för tidigare domäntyper. Den här begränsningen beror på att konstruktorn använder strukturen KERB_S4U_LOGON, som först infördes i Windows Server 2003. Den här konstruktorn kräver också läsåtkomst till attributet token-groups-global-and-universal (TGGAU) på målanvändarkontot.
Gäller för
WindowsIdentity(IntPtr, String, WindowsAccountType)
Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen och den angivna Windows kontotypen.
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)
Parametrar
- userToken
-
IntPtr
nativeint
Kontotoken för användaren för vars räkning koden körs.
- type
- String
(Endast informationsanvändning.) Den typ av autentisering som används för att identifiera användaren.
- acctType
- WindowsAccountType
Ett av uppräkningsvärdena.
Undantag
Exempel
Följande kod visar användningen av konstruktorn WindowsIdentity för att skapa en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen och den angivna Windows kontotypen. Det här kodexemplet är en del av ett större exempel för WindowsIdentity klassen.
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
Kommentarer
I följande tabell visas inledande egenskapsvärden för en instans av WindowsIdentity.
| Fastighet | Initialt värde |
|---|---|
| IsAuthenticated | false |
Värdet för parametern type används för att ange parametern AuthenticationType . Om type är null ställer säkerhetssystemet in AuthenticationType till Negotiate på Windows Vista och senare versioner av Windows operativsystem, och till Kerberos på tidigare versioner av Windows operativsystem. Säkerhetssystemet använder inte det här värdet. det är endast för informationsanvändning.
Note
Du kan hämta token som representeras av userToken genom att anropa ohanterad kod, till exempel funktionen Windows API LogonUser. Släpp alltid userToken genom att anropa funktionen Windows API CloseHandle. Mer information om hur du anropar ohanterad kod finns i Använda ohanterade DLL-funktioner.
Gäller för
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)
Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen, den angivna Windows kontotypen och den angivna autentiseringsstatusen.
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)
Parametrar
- userToken
-
IntPtr
nativeint
Kontotoken för användaren för vars räkning koden körs.
- type
- String
(Endast informationsanvändning.) Den typ av autentisering som används för att identifiera användaren.
- acctType
- WindowsAccountType
Ett av uppräkningsvärdena.
- isAuthenticated
- Boolean
trueför att ange att användaren är autentiserad. annars . false
Undantag
Exempel
Följande kod visar användningen av konstruktorn WindowsIdentity för att skapa en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen, den angivna Windows kontotypen och den angivna autentiseringsstatusen. Det här kodexemplet är en del av ett större exempel för WindowsIdentity klassen.
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
Kommentarer
Värdet för parametern type används för att ange parametern AuthenticationType . Om type är null ställer säkerhetssystemet in AuthenticationType till Negotiate på Windows Vista och senare versioner av Windows operativsystem, och till Kerberos på tidigare versioner av Windows operativsystem. Säkerhetssystemet använder inte det här värdet. det är endast för informationsanvändning.
Du kan hämta token som representeras av userToken genom att anropa ohanterad kod, till exempel funktionen Windows API LogonUser. Släpp alltid userToken genom att anropa funktionen Windows API CloseHandle. Mer information om hur du anropar ohanterad kod finns i Använda ohanterade DLL-funktioner.