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í
| 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
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
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.
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
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
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.