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
| Nazwa | Opis |
|---|---|
| WindowsIdentity(IntPtr) |
Inicjuje WindowsIdentity nowe wystąpienie klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows. |
| WindowsIdentity(WindowsIdentity) |
Inicjuje nowe wystąpienie WindowsIdentity klasy przy użyciu określonego WindowsIdentity obiektu. |
| WindowsIdentity(String) |
Inicjuje nowe wystąpienie WindowsIdentity klasy dla użytkownika reprezentowanego przez określoną główną nazwę użytkownika (UPN). |
| WindowsIdentity(IntPtr, String) |
Inicjuje nowe wystąpienie WindowsIdentity klasy dla użytkownika reprezentowanego przez określony token konta systemu Windows i określony typ uwierzytelniania. |
| WindowsIdentity(SerializationInfo, StreamingContext) |
Przestarzałe.
Inicjuje nowe wystąpienie WindowsIdentity 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, którego imieniu kod jest uruchomiony.
Wyjątki
userToken ma wartość 0.
— lub —
userToken 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 WindowsIdentityklasy .
| Majątek | Wartość początkowa |
|---|---|
| AuthenticationType | Negotiate |
| WindowsAccountType | Normal |
| IsAuthenticated | false |
Note
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 nowe wystąpienie WindowsIdentity 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 nowe wystąpienie WindowsIdentity 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 —
Komputer nie jest uruchomiony w systemie Windows 2003 lub nowszym.
— lub —
Użytkownik nie jest członkiem domeny, do którego jest dołączony komputer.
Uwagi
Nazwa UPN ma format nazwa_domeny_użytkownika@.com, innymi słowy, adres e-mail. Nazwa UPN zidentyfikowana w pliku sUserPrincipalName służy do pobierania tokenu dla tego użytkownika za pośrednictwem funkcji interfejsu API LsaLogonUser systemu Windows. Z kolei 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.
Note
Ten konstruktor jest przeznaczony do użycia 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 nowe wystąpienie WindowsIdentity 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, którego imieniu kod jest uruchomiony.
- type
- String
(Tylko użycie informacyjne). Typ uwierzytelniania używany do identyfikowania użytkownika.
Wyjątki
userToken ma wartość 0.
— lub —
userToken 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 dla klasy WindowsIdentity.
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 WindowsIdentityklasy .
| Majątek | Wartość początkowa |
|---|---|
| WindowsAccountType | Normal |
| IsAuthenticated | false |
Wartość parametru type służy do ustawiania parametru AuthenticationType . Jeśli type ma nullwartość , 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.
Note
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)
Uwaga
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
Inicjuje nowe wystąpienie WindowsIdentity klasy dla użytkownika reprezentowanego przez informacje w strumieniu SerializationInfo .
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)
Parametry
- info
- SerializationInfo
Obiekt zawierający informacje o koncie użytkownika.
- context
- StreamingContext
Obiekt wskazujący charakterystykę strumienia.
- Atrybuty
Wyjątki
WindowsIdentity Nie można serializować elementu między procesami.
Uwagi
Ważna
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.
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 użycie informacyjne). 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 —
Komputer nie jest uruchomiony w systemie Windows 2003 lub nowszym.
— lub —
Użytkownik nie jest członkiem domeny, do którego jest dołączony komputer.
Uwagi
Wartość parametru type służy do ustawiania parametru AuthenticationType . Jeśli type ma nullwartość , 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 pliku sUserPrincipalName służy do pobierania tokenu dla tego użytkownika za pośrednictwem funkcji interfejsu API LsaLogonUser systemu Windows. Z kolei 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.
Note
Ten konstruktor jest przeznaczony do użycia 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, którego imieniu kod jest uruchomiony.
- type
- String
(Tylko użycie informacyjne). Typ uwierzytelniania używany do identyfikowania użytkownika.
- acctType
- WindowsAccountType
Jedna z wartości wyliczenia.
Wyjątki
userToken ma wartość 0.
— lub —
userToken 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 dla klasy WindowsIdentity.
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 WindowsIdentityklasy .
| Majątek | Wartość początkowa |
|---|---|
| IsAuthenticated | false |
Wartość parametru type służy do ustawiania parametru AuthenticationType . Jeśli type ma nullwartość , 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.
Note
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, którego imieniu kod jest uruchomiony.
- type
- String
(Tylko użycie informacyjne). 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 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 typ konta systemu Windows oraz określony stan uwierzytelniania. Ten przykład kodu jest częścią większego przykładu udostępnionego dla klasy WindowsIdentity.
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 ma nullwartość , 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.