Udostępnij za pośrednictwem


WindowsIdentity Konstruktory

Definicja

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.

Obiekt wywołujący nie ma odpowiednich uprawnień.

-lub-

Wystąpił błąd Win32.

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.

Obiekt wywołujący nie ma odpowiednich uprawnień.

-lub-

Wystąpił błąd Win32.

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 nullto , 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.

Obiekt wywołujący nie ma odpowiednich uprawnień.

-lub-

Wystąpił błąd Win32.

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 nullto , 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.

Obiekt wywołujący nie ma odpowiednich uprawnień.

-lub-

Wystąpił błąd Win32.

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 nullto , 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.

Obiekt wywołujący nie ma odpowiednich uprawnień.

-lub-

Wystąpił błąd Win32.

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 nullto , 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.

Dotyczy