WindowsIdentity Konstruktory

Definice

Inicializuje novou instanci WindowsIdentity třídy.

Přetížení

Name Description
WindowsIdentity(IntPtr)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným tokenem účtu systému Windows.

WindowsIdentity(WindowsIdentity)

Inicializuje novou instanci WindowsIdentity třídy pomocí zadaného WindowsIdentity objektu.

WindowsIdentity(String)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným hlavním názvem uživatele (UPN).

WindowsIdentity(IntPtr, String)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným tokenem účtu Systému Windows a zadaným typem ověřování.

WindowsIdentity(SerializationInfo, StreamingContext)
Zastaralé.

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované informacemi ve streamu SerializationInfo .

WindowsIdentity(String, String)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným hlavním názvem uživatele (UPN) a zadaným typem ověřování.

WindowsIdentity(IntPtr, String, WindowsAccountType)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným tokenem účtu Systému Windows, zadaným typem ověřování a zadaným typem účtu Systému Windows.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným tokenem účtu Systému Windows, zadaným typem ověřování, zadaným typem účtu Systému Windows a zadaným stavem ověřování.

WindowsIdentity(IntPtr)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným tokenem účtu systému 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 účtu pro uživatele, jehož jménem je kód spuštěný.

Výjimky

userToken je 0.

nebo

userToken je duplikován a je neplatný pro zosobnění.

Volající nemá správná oprávnění.

nebo

Došlo k chybě Win32.

Poznámky

V následující tabulce jsou uvedeny počáteční hodnoty vlastností pro instanci WindowsIdentity.

Property Počáteční hodnota
AuthenticationType Negotiate
WindowsAccountType Normal
IsAuthenticated false

Note

Token reprezentovaný voláním userToken nespravovaného kódu, jako je funkce rozhraní API LogonUser systému Windows, můžete načíst. Vždy vydávejte userToken voláním funkce rozhraní API CloseHandle systému Windows. Další informace o volání nespravovaného kódu naleznete v tématu Využívání nespravovaných funkcí knihovny DLL.

Platí pro

WindowsIdentity(WindowsIdentity)

Inicializuje novou instanci WindowsIdentity třídy pomocí zadaného WindowsIdentity objektu.

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

Objekt, ze kterého se má vytvořit nová instance WindowsIdentity.

Platí pro

WindowsIdentity(String)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným hlavním názvem uživatele (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

Hlavní název uživatele (UPN), jehož jménem je kód spuštěný.

Výjimky

Systém Windows vrátil stavový kód systému Windows NT STATUS_ACCESS_DENIED.

Není k dispozici dostatek paměti.

Volající nemá správná oprávnění.

nebo

Počítač není připojen k doméně systému Windows 2003 nebo novější.

nebo

Počítač nemá systém Windows 2003 nebo novější.

nebo

Uživatel není členem domény, ke které je počítač připojen.

Poznámky

Hlavní název uživatele (UPN) má názevdomény ve formátu uživatelské jméno@.com jinými slovy e-mailovou adresu. Hlavní název uživatele (UPN) identifikovaný v sUserPrincipalName aplikaci se používá k načtení tokenu pro daného uživatele prostřednictvím funkce rozhraní API LsaLogonUser systému Windows. Tento token se pak používá k identifikaci uživatele. Kvůli nemožnosti přihlásit se pomocí zadaného hlavního názvu uživatele (UPN) může být vrácena výjimka.

Note

Tento konstruktor je určen pouze pro počítače připojené k doménám systému Windows Server 2003 nebo novější. Pro starší typy domén se vyvolá výjimka. Toto omezení je způsobeno skutečností, že tento konstruktor používá strukturu KERB_S4U_LOGON, která byla poprvé zavedena v systému Windows Server 2003. Tento konstruktor také vyžaduje přístup pro čtení k atributu token-groups-global-and-universal (TGGAU) cílového uživatelského účtu.

Platí pro

WindowsIdentity(IntPtr, String)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným tokenem účtu Systému Windows a zadaným typem ověřování.

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 účtu pro uživatele, jehož jménem je kód spuštěný.

type
String

(Pouze informativní použití.) Typ ověřování sloužící k identifikaci uživatele.

Výjimky

userToken je 0.

nebo

userToken je duplikován a je neplatný pro zosobnění.

Volající nemá správná oprávnění.

nebo

Došlo k chybě Win32.

Příklady

Následující kód ukazuje použití WindowsIdentity konstruktoru k vytvoření nové instance WindowsIdentity třídy pro uživatele reprezentovaného zadaným tokenem účtu Systému Windows a zadaným typem ověřování. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu 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

Poznámky

V následující tabulce jsou uvedeny počáteční hodnoty vlastností pro instanci WindowsIdentity.

Property Počáteční hodnota
WindowsAccountType Normal
IsAuthenticated false

Hodnota parametru type se používá k nastavení parametru AuthenticationType . Pokud type ano null, systém zabezpečení se nastaví AuthenticationType v Negotiate systému Windows Vista a novějších verzích operačního systému Windows a na Kerberos starší verze operačního systému Windows. Systém zabezpečení tuto hodnotu nepoužívá; je určena pouze pro informační použití.

Note

Token reprezentovaný voláním userToken nespravovaného kódu, jako je funkce rozhraní API LogonUser systému Windows, můžete načíst. Vždy vydávejte userToken voláním funkce rozhraní API CloseHandle systému Windows. Další informace o volání nespravovaného kódu naleznete v tématu Využívání nespravovaných funkcí knihovny DLL.

Platí pro

WindowsIdentity(SerializationInfo, StreamingContext)

Upozornění

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované informacemi ve streamu 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

Objekt obsahující informace o účtu uživatele.

context
StreamingContext

Objekt, který označuje charakteristiky datového proudu.

Atributy

Výjimky

Nelze WindowsIdentity serializovat napříč procesy.

Volající nemá správná oprávnění.

nebo

Došlo k chybě Win32.

Poznámky

Important

Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Volejte tuto metodu pouze s důvěryhodnými daty. Další informace naleznete v tématu Ověření všech vstupů.

Platí pro

WindowsIdentity(String, String)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným hlavním názvem uživatele (UPN) a zadaným typem ověřování.

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

Hlavní název uživatele (UPN), jehož jménem je kód spuštěný.

type
String

(Pouze informativní použití.) Typ ověřování sloužící k identifikaci uživatele.

Výjimky

Systém Windows vrátil stavový kód systému Windows NT STATUS_ACCESS_DENIED.

Není k dispozici dostatek paměti.

Volající nemá správná oprávnění.

nebo

Počítač není připojen k doméně systému Windows 2003 nebo novější.

nebo

Počítač nemá systém Windows 2003 nebo novější.

nebo

Uživatel není členem domény, ke které je počítač připojen.

Poznámky

Hodnota parametru type se používá k nastavení parametru AuthenticationType . Pokud type ano null, systém zabezpečení se nastaví AuthenticationType v Negotiate systému Windows Vista a novějších verzích operačního systému Windows a na Kerberos starší verze operačního systému Windows. Systém zabezpečení tuto hodnotu nepoužívá; je určena pouze pro informační použití.

Hlavní název uživatele (UPN) identifikovaný v sUserPrincipalName aplikaci se používá k načtení tokenu pro daného uživatele prostřednictvím funkce rozhraní API LsaLogonUser systému Windows. Tento token se pak používá k identifikaci uživatele. Kvůli nemožnosti přihlásit se pomocí zadaného hlavního názvu uživatele (UPN) může být vrácena výjimka.

Note

Tento konstruktor je určen pouze pro počítače připojené k doménám systému Windows Server 2003 nebo novější. Pro starší typy domén se vyvolá výjimka. Toto omezení je způsobeno skutečností, že tento konstruktor používá strukturu KERB_S4U_LOGON, která byla poprvé zavedena v systému Windows Server 2003. Tento konstruktor také vyžaduje přístup pro čtení k atributu token-groups-global-and-universal (TGGAU) cílového uživatelského účtu.

Platí pro

WindowsIdentity(IntPtr, String, WindowsAccountType)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným tokenem účtu Systému Windows, zadaným typem ověřování a zadaným typem účtu Systému 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 účtu pro uživatele, jehož jménem je kód spuštěný.

type
String

(Pouze informativní použití.) Typ ověřování sloužící k identifikaci uživatele.

acctType
WindowsAccountType

Jedna z hodnot výčtu

Výjimky

userToken je 0.

nebo

userToken je duplikován a je neplatný pro zosobnění.

Volající nemá správná oprávnění.

nebo

Došlo k chybě Win32.

Příklady

Následující kód ukazuje použití WindowsIdentity konstruktoru k vytvoření nové instance WindowsIdentity třídy pro uživatele reprezentovaného zadaným tokenem účtu Systému Windows, zadaným typem ověřování a zadaným typem účtu systému Windows. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu 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

Poznámky

V následující tabulce jsou uvedeny počáteční hodnoty vlastností pro instanci WindowsIdentity.

Property Počáteční hodnota
IsAuthenticated false

Hodnota parametru type se používá k nastavení parametru AuthenticationType . Pokud type ano null, systém zabezpečení se nastaví AuthenticationType v Negotiate systému Windows Vista a novějších verzích operačního systému Windows a na Kerberos starší verze operačního systému Windows. Systém zabezpečení tuto hodnotu nepoužívá; je určena pouze pro informační použití.

Note

Token reprezentovaný voláním userToken nespravovaného kódu, jako je funkce rozhraní API LogonUser systému Windows, můžete načíst. Vždy vydávejte userToken voláním funkce rozhraní API CloseHandle systému Windows. Další informace o volání nespravovaného kódu naleznete v tématu Využívání nespravovaných funkcí knihovny DLL.

Platí pro

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentované zadaným tokenem účtu Systému Windows, zadaným typem ověřování, zadaným typem účtu Systému Windows a zadaným stavem ověřování.

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 účtu pro uživatele, jehož jménem je kód spuštěný.

type
String

(Pouze informativní použití.) Typ ověřování sloužící k identifikaci uživatele.

acctType
WindowsAccountType

Jedna z hodnot výčtu

isAuthenticated
Boolean

trueoznačit, že uživatel je ověřený; v opačném případě . false

Výjimky

userToken je 0.

nebo

userToken je duplikován a je neplatný pro zosobnění.

Volající nemá správná oprávnění.

nebo

Došlo k chybě Win32.

Příklady

Následující kód ukazuje použití konstruktoru WindowsIdentity k vytvoření nové instance WindowsIdentity třídy pro uživatele reprezentovaného zadaným tokenem účtu Systému Windows, zadaným typem ověřování, zadaným typem účtu Systému Windows a zadaným stavem ověřování. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu 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

Poznámky

Hodnota parametru type se používá k nastavení parametru AuthenticationType . Pokud type ano null, systém zabezpečení se nastaví AuthenticationType v Negotiate systému Windows Vista a novějších verzích operačního systému Windows a na Kerberos starší verze operačního systému Windows. Systém zabezpečení tuto hodnotu nepoužívá; je určena pouze pro informační použití.

Token reprezentovaný voláním userToken nespravovaného kódu, jako je funkce rozhraní API LogonUser systému Windows, můžete načíst. Vždy vydávejte userToken voláním funkce rozhraní API CloseHandle systému Windows. Další informace o volání nespravovaného kódu naleznete v tématu Využívání nespravovaných funkcí knihovny DLL.

Platí pro