WindowsIdentity Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje novou instanci WindowsIdentity třídy .
Přetížení
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ého 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 v datovém SerializationInfo proudu. |
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ého 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
Poznámky
Následující tabulka obsahuje počáteční hodnoty vlastností pro instanci .WindowsIdentity
Vlastnost | Počáteční hodnota |
---|---|
AuthenticationType | Negotiate |
WindowsAccountType | Normal |
IsAuthenticated | false |
Poznámka
Token reprezentovaný userToken
pomocí můžete načíst voláním nespravovaného kódu, jako je funkce rozhraní API LogonUser
systému Windows. Vždy uvolněte 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žití 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 objektu WindowsIdentity.
Platí pro
WindowsIdentity(String)
Inicializuje novou instanci WindowsIdentity třídy pro uživatele reprezentovaného 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) uživatele, 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-
V počítači není spuštěn 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á formát název_domény.com@, jinými slovy e-mailovou adresu. Hlavní název uživatele (UPN) identifikovaný v sUserPrincipalName
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žije k identifikaci uživatele. Může se vrátit výjimka z důvodu nemožnosti přihlásit se pomocí zadaného hlavního názvu uživatele (UPN).
Poznámka
Tento konstruktor je určen pouze pro počítače připojené k doménám systému Windows Server 2003 nebo novějším. U starších typů 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) v cílovém uživatelském úč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í použitého k identifikaci uživatele.
Výjimky
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 a zadaným typem ověřování. Tento příklad kódu je součástí většího příkladu WindowsIdentity pro třídu.
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
Následující tabulka obsahuje počáteční hodnoty vlastností pro instanci .WindowsIdentity
Vlastnost | Počáteční hodnota |
---|---|
WindowsAccountType | Normal |
IsAuthenticated | false |
Hodnota parametru se type
používá k nastavení parametru AuthenticationType . Pokud type
je null
, systém zabezpečení nastaví AuthenticationType na Negotiate
ve Windows Vista a novějších verzích operačního systému Windows a ve starších verzích operačního systému Windows na Kerberos
. Bezpečnostní systém tuto hodnotu nepoužívá; je určen pouze pro informační použití.
Poznámka
Token reprezentovaný userToken
pomocí můžete načíst voláním nespravovaného kódu, jako je funkce rozhraní API LogonUser
systému Windows. Vždy uvolněte 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žití 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 v datovém SerializationInfo proudu.
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
Objekt obsahující informace o účtu uživatele.
- context
- StreamingContext
Objekt, který označuje charakteristiky streamu.
- Atributy
Výjimky
Objekt WindowsIdentity nelze serializovat napříč procesy.
Poznámky
Důležité
Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Tuto metodu volejte pouze s důvěryhodnými daty. Další informace najdete 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ý typ 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) pro uživatele, jehož jménem je kód spuštěn.
- type
- String
(Pouze informativní použití.) Typ ověřování použitý 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-
V počítači není spuštěn 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 se type
používá k nastavení parametru AuthenticationType . Pokud type
je null
, systém zabezpečení nastaví AuthenticationType na v Negotiate
systému Windows Vista a novějších verzích operačního systému Windows a na na Kerberos
ve starších verzích operačního systému Windows. Systém zabezpečení tuto hodnotu nepoužívá; slouží pouze k informačnímu použití.
Hlavní název uživatele (UPN) identifikovaný v sUserPrincipalName
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žije k identifikaci uživatele. Může se vrátit výjimka z důvodu nemožnosti přihlásit se pomocí zadaného hlavního názvu uživatele (UPN).
Poznámka
Tento konstruktor je určen pouze pro použití v počítačích připojených k doménám systému Windows Server 2003 nebo novějším. U starších typů 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ý typ ověřování a zadaný typ úč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í použitý k identifikaci uživatele.
- acctType
- WindowsAccountType
Jedna z hodnot výčtu
Výjimky
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ý typ ověřování a zadaný typ účtu systému Windows. Tento příklad kódu je součástí většího příkladu WindowsIdentity pro třídu .
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
Následující tabulka uvádí počáteční hodnoty vlastností pro instanci .WindowsIdentity
Vlastnost | Počáteční hodnota |
---|---|
IsAuthenticated | false |
Hodnota parametru se type
používá k nastavení parametru AuthenticationType . Pokud type
je null
, systém zabezpečení nastaví AuthenticationType na v Negotiate
systému Windows Vista a novějších verzích operačního systému Windows a na na Kerberos
ve starších verzích operačního systému Windows. Systém zabezpečení tuto hodnotu nepoužívá; slouží pouze k informačnímu použití.
Poznámka
Token reprezentovaný userToken
funkcí můžete načíst voláním nespravovaného kódu, jako je funkce rozhraní API LogonUser
systému Windows. Vždy uvolněte userToken
voláním funkce rozhraní API CloseHandle
systému Windows. Další informace o volání nespravovaného kódu najdete v tématu Využití funkcí nespravovaných knihoven 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ý typ ověřování, zadaný typ účtu systému Windows a zadaný stav 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í použitý k identifikaci uživatele.
- acctType
- WindowsAccountType
Jedna z hodnot výčtu
- isAuthenticated
- Boolean
true
k označení, že uživatel je ověřený; v opačném případě . false
Výjimky
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ý typ ověřování, zadaný typ účtu systému Windows a zadaný stav ověřování. Tento příklad kódu je součástí většího příkladu WindowsIdentity pro třídu .
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 se type
používá k nastavení parametru AuthenticationType . Pokud type
je null
, systém zabezpečení nastaví AuthenticationType na v Negotiate
systému Windows Vista a novějších verzích operačního systému Windows a na na Kerberos
ve starších verzích operačního systému Windows. Systém zabezpečení tuto hodnotu nepoužívá; slouží pouze k informačnímu použití.
Token reprezentovaný userToken
funkcí můžete načíst voláním nespravovaného kódu, jako je funkce rozhraní API LogonUser
systému Windows. Vždy uvolněte userToken
voláním funkce rozhraní API CloseHandle
systému Windows. Další informace o volání nespravovaného kódu najdete v tématu Využití funkcí nespravovaných knihoven DLL.