WindowsIdentity Konstruktory
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie klasy WindowsIdentity.
Przeciążenia
WindowsIdentity(IntPtr) |
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows. |
WindowsIdentity(WindowsIdentity) |
Inicjuje WindowsIdentity nowe wystąpienie klasy przy użyciu określonego WindowsIdentity obiektu. |
WindowsIdentity(String) |
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określoną główną nazwę użytkownika (UPN). |
WindowsIdentity(IntPtr, String) |
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows i określony typ uwierzytelniania. |
WindowsIdentity(SerializationInfo, StreamingContext) |
Przestarzałe.
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez informacje w strumieniu SerializationInfo . |
WindowsIdentity(String, String) |
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określoną główną nazwę użytkownika (UPN) i określony typ uwierzytelniania. |
WindowsIdentity(IntPtr, String, WindowsAccountType) |
Inicjuje nowe wystąpienie WindowsIdentity klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows, określony typ uwierzytelniania i określony typ konta systemu Windows. |
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
Inicjuje nowe wystąpienie WindowsIdentity klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows, określony typ uwierzytelniania, określony typ konta systemu Windows i określony stan uwierzytelniania. |
WindowsIdentity(IntPtr)
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows.
public:
WindowsIdentity(IntPtr userToken);
public WindowsIdentity (IntPtr userToken);
new System.Security.Principal.WindowsIdentity : nativeint -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr)
Parametry
- userToken
-
IntPtr
nativeint
Token konta użytkownika, w którym imieniu jest uruchomiony kod.
Wyjątki
userToken
ma wartość 0.
-lub-
userToken
element jest zduplikowany i nieprawidłowy w przypadku personifikacji.
Uwagi
W poniższej tabeli przedstawiono początkowe wartości właściwości dla wystąpienia klasy WindowsIdentity.
Właściwość | Wartość początkowa |
---|---|
AuthenticationType | Negotiate |
WindowsAccountType | Normal |
IsAuthenticated | false |
Uwaga
Token reprezentowany przez userToken
wywołanie niezarządzanych kodów, takich jak funkcja interfejsu API LogonUser
systemu Windows, można pobrać. Zawsze zwalniaj userToken
, wywołując funkcję interfejsu API CloseHandle
systemu Windows. Aby uzyskać więcej informacji na temat wywoływania niezarządzanego kodu, zobacz Korzystanie z niezarządzanych funkcji DLL.
Dotyczy
WindowsIdentity(WindowsIdentity)
Inicjuje WindowsIdentity nowe wystąpienie klasy przy użyciu określonego WindowsIdentity obiektu.
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)
Parametry
- identity
- WindowsIdentity
Obiekt, z którego ma utworzyć nowe wystąpienie klasy WindowsIdentity.
Dotyczy
WindowsIdentity(String)
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określoną główną nazwę użytkownika (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)
Parametry
- sUserPrincipalName
- String
Nazwa UPN użytkownika, w którym imieniu jest uruchomiony kod.
Wyjątki
System Windows zwrócił kod stanu systemu Windows NT STATUS_ACCESS_DENIED.
Za mało dostępnej pamięci.
Obiekt wywołujący nie ma odpowiednich uprawnień.
-lub-
Komputer nie jest dołączony do domeny systemu Windows 2003 lub nowszej.
-lub-
Na komputerze nie jest uruchomiony system Windows 2003 lub nowszy.
-lub-
Użytkownik nie jest członkiem domeny, do których jest dołączony komputer.
Uwagi
Nazwa UPN ma format nazwa_domeny_użytkownika@.com, innymi słowy, adres e-mail. Nazwa UPN zidentyfikowana w sUserPrincipalName
pliku służy do pobierania tokenu dla tego użytkownika za pomocą funkcji interfejsu API LsaLogonUser
systemu Windows. Z kolei ten token jest używany do identyfikowania użytkownika. Może zostać zwrócony wyjątek z powodu braku możliwości zalogowania się przy użyciu podanej nazwy UPN.
Uwaga
Ten konstruktor jest przeznaczony do użytku tylko na komputerach dołączonych do domen systemu Windows Server 2003 lub nowszych. Wyjątek jest zgłaszany dla wcześniejszych typów domen. To ograniczenie wynika z faktu, że ten konstruktor używa struktury KERB_S4U_LOGON, która została po raz pierwszy wprowadzona w systemie Windows Server 2003. Ponadto ten konstruktor wymaga dostępu do odczytu do atrybutu token-groups-global-and-universal (TGGAU) na docelowym koncie użytkownika.
Dotyczy
WindowsIdentity(IntPtr, String)
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows i określony typ uwierzytelniania.
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)
Parametry
- userToken
-
IntPtr
nativeint
Token konta użytkownika, w którym imieniu jest uruchomiony kod.
- type
- String
(Tylko do użytku informacyjnego). Typ uwierzytelniania używany do identyfikowania użytkownika.
Wyjątki
userToken
ma wartość 0.
-lub-
userToken
element jest zduplikowany i nieprawidłowy w przypadku personifikacji.
Przykłady
Poniższy kod przedstawia użycie WindowsIdentity konstruktora do utworzenia nowego wystąpienia WindowsIdentity klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows i określony typ uwierzytelniania. Ten przykład kodu jest częścią większego przykładu udostępnionego WindowsIdentity dla klasy .
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
Uwagi
W poniższej tabeli przedstawiono początkowe wartości właściwości dla wystąpienia klasy WindowsIdentity.
Właściwość | Wartość początkowa |
---|---|
WindowsAccountType | Normal |
IsAuthenticated | false |
Wartość parametru type
służy do ustawiania parametru AuthenticationType . Jeśli type
jest null
to , system zabezpieczeń ustawia wartość AuthenticationTypeNegotiate
na w systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows oraz na Kerberos
wcześniejsze wersje systemu operacyjnego Windows. System zabezpieczeń nie używa tej wartości; jest przeznaczony tylko do użytku informacyjnego.
Uwaga
Token reprezentowany przez userToken
wywołanie niezarządzanych kodów, takich jak funkcja interfejsu API LogonUser
systemu Windows, można pobrać. Zawsze zwalniaj userToken
, wywołując funkcję interfejsu API CloseHandle
systemu Windows. Aby uzyskać więcej informacji na temat wywoływania niezarządzanego kodu, zobacz Korzystanie z niezarządzanych funkcji DLL.
Dotyczy
WindowsIdentity(SerializationInfo, StreamingContext)
Przestroga
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez informacje w strumieniu SerializationInfo .
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}")]
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
[<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
Public Sub New (info As SerializationInfo, context As StreamingContext)
Parametry
- info
- SerializationInfo
Obiekt zawierający informacje o koncie użytkownika.
- context
- StreamingContext
Obiekt, który wskazuje charakterystykę strumienia.
- Atrybuty
Wyjątki
WindowsIdentity Nie można serializować elementu między procesami.
Uwagi
Ważne
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs (Weryfikowanie wszystkich danych wejściowych).
Dotyczy
WindowsIdentity(String, String)
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określoną główną nazwę użytkownika (UPN) i określony typ uwierzytelniania.
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)
Parametry
- sUserPrincipalName
- String
Nazwa UPN użytkownika, w którym imieniu jest uruchomiony kod.
- type
- String
(Tylko do użytku informacyjnego). Typ uwierzytelniania używany do identyfikowania użytkownika.
Wyjątki
System Windows zwrócił kod stanu systemu Windows NT STATUS_ACCESS_DENIED.
Za mało dostępnej pamięci.
Obiekt wywołujący nie ma odpowiednich uprawnień.
-lub-
Komputer nie jest dołączony do domeny systemu Windows 2003 lub nowszej.
-lub-
Na komputerze nie jest uruchomiony system Windows 2003 lub nowszy.
-lub-
Użytkownik nie jest członkiem domeny, do których jest dołączony komputer.
Uwagi
Wartość parametru type
służy do ustawiania parametru AuthenticationType . Jeśli type
jest null
to , system zabezpieczeń ustawia wartość AuthenticationTypeNegotiate
na w systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows oraz na Kerberos
wcześniejsze wersje systemu operacyjnego Windows. System zabezpieczeń nie używa tej wartości; jest przeznaczony tylko do użytku informacyjnego.
Nazwa UPN zidentyfikowana w sUserPrincipalName
pliku służy do pobierania tokenu dla tego użytkownika za pomocą funkcji interfejsu API LsaLogonUser
systemu Windows. Z kolei ten token jest używany do identyfikowania użytkownika. Może zostać zwrócony wyjątek z powodu braku możliwości zalogowania się przy użyciu podanej nazwy UPN.
Uwaga
Ten konstruktor jest przeznaczony do użytku tylko na komputerach dołączonych do domen systemu Windows Server 2003 lub nowszych. Wyjątek jest zgłaszany dla wcześniejszych typów domen. To ograniczenie wynika z faktu, że ten konstruktor używa struktury KERB_S4U_LOGON, która została po raz pierwszy wprowadzona w systemie Windows Server 2003. Ponadto ten konstruktor wymaga dostępu do odczytu do atrybutu token-groups-global-and-universal (TGGAU) na docelowym koncie użytkownika.
Dotyczy
WindowsIdentity(IntPtr, String, WindowsAccountType)
Inicjuje nowe wystąpienie WindowsIdentity klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows, określony typ uwierzytelniania i określony typ konta systemu Windows.
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)
Parametry
- userToken
-
IntPtr
nativeint
Token konta użytkownika, w którym imieniu jest uruchomiony kod.
- type
- String
(Tylko do użytku informacyjnego). Typ uwierzytelniania używany do identyfikowania użytkownika.
- acctType
- WindowsAccountType
Jedna z wartości wyliczenia.
Wyjątki
userToken
ma wartość 0.
-lub-
userToken
element jest zduplikowany i nieprawidłowy w przypadku personifikacji.
Przykłady
Poniższy kod przedstawia użycie WindowsIdentity konstruktora do utworzenia nowego wystąpienia WindowsIdentity klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows, określony typ uwierzytelniania i określony typ konta systemu Windows. Ten przykład kodu jest częścią większego przykładu udostępnionego WindowsIdentity dla klasy .
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
Uwagi
W poniższej tabeli przedstawiono początkowe wartości właściwości dla wystąpienia klasy WindowsIdentity.
Właściwość | Wartość początkowa |
---|---|
IsAuthenticated | false |
Wartość parametru type
służy do ustawiania parametru AuthenticationType . Jeśli type
jest null
to , system zabezpieczeń ustawia wartość AuthenticationTypeNegotiate
na w systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows oraz na Kerberos
wcześniejsze wersje systemu operacyjnego Windows. System zabezpieczeń nie używa tej wartości; jest przeznaczony tylko do użytku informacyjnego.
Uwaga
Token reprezentowany przez userToken
wywołanie niezarządzanych kodów, takich jak funkcja interfejsu API LogonUser
systemu Windows, można pobrać. Zawsze zwalniaj userToken
, wywołując funkcję interfejsu API CloseHandle
systemu Windows. Aby uzyskać więcej informacji na temat wywoływania niezarządzanego kodu, zobacz Korzystanie z niezarządzanych funkcji DLL.
Dotyczy
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)
Inicjuje nowe wystąpienie WindowsIdentity klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows, określony typ uwierzytelniania, określony typ konta systemu Windows i określony stan uwierzytelniania.
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)
Parametry
- userToken
-
IntPtr
nativeint
Token konta użytkownika, w którym imieniu jest uruchomiony kod.
- type
- String
(Tylko do użytku informacyjnego). Typ uwierzytelniania używany do identyfikowania użytkownika.
- acctType
- WindowsAccountType
Jedna z wartości wyliczenia.
- isAuthenticated
- Boolean
true
aby wskazać, że użytkownik jest uwierzytelniony; w przeciwnym razie , false
.
Wyjątki
userToken
ma wartość 0.
-lub-
userToken
element jest zduplikowany i nieprawidłowy w przypadku personifikacji.
Przykłady
Poniższy kod przedstawia użycie WindowsIdentity konstruktora do utworzenia nowego wystąpienia WindowsIdentity klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows, określony typ uwierzytelniania, określony typ konta systemu Windows i określony stan uwierzytelniania. Ten przykład kodu jest częścią większego przykładu udostępnionego WindowsIdentity dla klasy .
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
Uwagi
Wartość parametru type
służy do ustawiania parametru AuthenticationType . Jeśli type
jest null
to , system zabezpieczeń ustawia wartość AuthenticationTypeNegotiate
na w systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows oraz na Kerberos
wcześniejsze wersje systemu operacyjnego Windows. System zabezpieczeń nie używa tej wartości; jest przeznaczony tylko do użytku informacyjnego.
Token reprezentowany przez userToken
wywołanie niezarządzanych kodów, takich jak funkcja interfejsu API LogonUser
systemu Windows, można pobrać. Zawsze zwalniaj userToken
, wywołując funkcję interfejsu API CloseHandle
systemu Windows. Aby uzyskać więcej informacji na temat wywoływania niezarządzanego kodu, zobacz Korzystanie z niezarządzanych funkcji DLL.