WindowsIdentity Costruttori
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizializza una nuova istanza della classe WindowsIdentity.
Overload
| Nome | Descrizione |
|---|---|
| WindowsIdentity(IntPtr) |
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato. |
| WindowsIdentity(WindowsIdentity) |
Inizializza una nuova istanza della WindowsIdentity classe utilizzando l'oggetto specificato WindowsIdentity . |
| WindowsIdentity(String) |
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal nome dell'entità utente (UPN) specificato. |
| WindowsIdentity(IntPtr, String) |
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato e dal tipo di autenticazione specificato. |
| WindowsIdentity(SerializationInfo, StreamingContext) |
Obsoleti.
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato da informazioni in un SerializationInfo flusso. |
| WindowsIdentity(String, String) |
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal nome dell'entità utente (UPN) specificato e dal tipo di autenticazione specificato. |
| WindowsIdentity(IntPtr, String, WindowsAccountType) |
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato, dal tipo di autenticazione specificato e dal tipo di account di Windows specificato. |
| WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato, dal tipo di autenticazione specificato, dal tipo di account di Windows specificato e dallo stato di autenticazione specificato. |
WindowsIdentity(IntPtr)
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato.
public:
WindowsIdentity(IntPtr userToken);
public WindowsIdentity(IntPtr userToken);
new System.Security.Principal.WindowsIdentity : nativeint -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr)
Parametri
- userToken
-
IntPtr
nativeint
Token dell'account per l'utente per conto del quale è in esecuzione il codice.
Eccezioni
Il chiamante non dispone delle autorizzazioni corrette.
oppure
Si è verificato un errore Win32.
Commenti
Nella tabella seguente vengono illustrati i valori iniziali delle proprietà per un'istanza di WindowsIdentity.
| Proprietà | Valore iniziale |
|---|---|
| AuthenticationType | Negotiate |
| WindowsAccountType | Normal |
| IsAuthenticated | false |
Annotazioni
È possibile recuperare il token rappresentato chiamando userToken codice non gestito, ad esempio la funzione API LogonUser di Windows. Rilasciare userToken sempre chiamando la funzione API CloseHandle di Windows. Per altre informazioni sulla chiamata di codice non gestito, vedere Utilizzo di funzioni DLL non gestite.
Si applica a
WindowsIdentity(WindowsIdentity)
Inizializza una nuova istanza della WindowsIdentity classe utilizzando l'oggetto specificato WindowsIdentity .
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)
Parametri
- identity
- WindowsIdentity
Oggetto da cui costruire la nuova istanza di WindowsIdentity.
Si applica a
WindowsIdentity(String)
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal nome dell'entità utente (UPN) specificato.
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)
Parametri
- sUserPrincipalName
- String
UPN per l'utente per conto del quale è in esecuzione il codice.
Eccezioni
Windows ha restituito il codice di stato di Windows NT STATUS_ACCESS_DENIED.
Memoria insufficiente.
Il chiamante non dispone delle autorizzazioni corrette.
oppure
Il computer non è collegato a un dominio windows 2003 o versione successiva.
oppure
Il computer non esegue Windows 2003 o versione successiva.
oppure
L'utente non è membro del dominio a cui è collegato il computer.
Commenti
Un UPN ha il formato nomedominio del nome utente@.com, in altre parole, un indirizzo di posta elettronica. L'UPN identificato in sUserPrincipalName viene usato per recuperare un token per tale utente tramite la funzione API LsaLogonUser di Windows. A sua volta, tale token viene usato per identificare l'utente. È possibile che venga restituita un'eccezione a causa dell'impossibilità di accedere usando l'UPN fornito.
Annotazioni
Questo costruttore è destinato all'uso solo nei computer aggiunti a domini Windows Server 2003 o versioni successive. Viene generata un'eccezione per i tipi di dominio precedenti. Questa restrizione è dovuta al fatto che questo costruttore usa la struttura KERB_S4U_LOGON, introdotta per la prima volta in Windows Server 2003. Inoltre, questo costruttore richiede l'accesso in lettura all'attributo token-groups-global-and-universal (TG ROUTE) nell'account utente di destinazione.
Si applica a
WindowsIdentity(IntPtr, String)
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato e dal tipo di autenticazione specificato.
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)
Parametri
- userToken
-
IntPtr
nativeint
Token dell'account per l'utente per conto del quale è in esecuzione il codice.
- type
- String
(Solo uso informativo). Tipo di autenticazione utilizzato per identificare l'utente.
Eccezioni
Il chiamante non dispone delle autorizzazioni corrette.
oppure
Si è verificato un errore Win32.
Esempio
Il codice seguente illustra l'uso del WindowsIdentity costruttore per creare una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato e dal tipo di autenticazione specificato. Questo esempio di codice fa parte di un esempio più ampio fornito per la WindowsIdentity classe .
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
Commenti
Nella tabella seguente vengono illustrati i valori iniziali delle proprietà per un'istanza di WindowsIdentity.
| Proprietà | Valore iniziale |
|---|---|
| WindowsAccountType | Normal |
| IsAuthenticated | false |
Il valore del type parametro viene usato per impostare il AuthenticationType parametro . Se type è null, il sistema di sicurezza imposta su AuthenticationTypeNegotiate in Windows Vista e versioni successive del sistema operativo Windows e su Kerberos nelle versioni precedenti del sistema operativo Windows. Il sistema di sicurezza non usa questo valore; è solo per uso informativo.
Annotazioni
È possibile recuperare il token rappresentato chiamando userToken codice non gestito, ad esempio la funzione API LogonUser di Windows. Rilasciare userToken sempre chiamando la funzione API CloseHandle di Windows. Per altre informazioni sulla chiamata di codice non gestito, vedere Utilizzo di funzioni DLL non gestite.
Si applica a
WindowsIdentity(SerializationInfo, StreamingContext)
Attenzione
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato da informazioni in un SerializationInfo flusso.
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)
Parametri
- info
- SerializationInfo
Oggetto contenente le informazioni sull'account per l'utente.
- context
- StreamingContext
Oggetto che indica le caratteristiche del flusso.
- Attributi
Eccezioni
Un WindowsIdentity oggetto non può essere serializzato tra i processi.
Il chiamante non dispone delle autorizzazioni corrette.
oppure
Si è verificato un errore Win32.
Commenti
Importante
La chiamata a questo metodo con dati non attendibili è un rischio per la sicurezza. Chiamare questo metodo solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
Si applica a
WindowsIdentity(String, String)
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal nome dell'entità utente (UPN) specificato e dal tipo di autenticazione specificato.
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)
Parametri
- sUserPrincipalName
- String
UPN per l'utente per conto del quale è in esecuzione il codice.
- type
- String
(Solo uso informativo). Tipo di autenticazione utilizzato per identificare l'utente.
Eccezioni
Windows ha restituito il codice di stato di Windows NT STATUS_ACCESS_DENIED.
Memoria insufficiente.
Il chiamante non dispone delle autorizzazioni corrette.
oppure
Il computer non è collegato a un dominio windows 2003 o versione successiva.
oppure
Il computer non esegue Windows 2003 o versione successiva.
oppure
L'utente non è membro del dominio a cui è collegato il computer.
Commenti
Il valore del type parametro viene usato per impostare il AuthenticationType parametro . Se type è null, il sistema di sicurezza imposta su AuthenticationTypeNegotiate in Windows Vista e versioni successive del sistema operativo Windows e su Kerberos nelle versioni precedenti del sistema operativo Windows. Il sistema di sicurezza non usa questo valore; è solo per uso informativo.
L'UPN identificato in sUserPrincipalName viene usato per recuperare un token per tale utente tramite la funzione API LsaLogonUser di Windows. A sua volta, tale token viene usato per identificare l'utente. È possibile che venga restituita un'eccezione a causa dell'impossibilità di accedere usando l'UPN fornito.
Annotazioni
Questo costruttore è destinato all'uso solo nei computer aggiunti a domini Windows Server 2003 o versioni successive. Viene generata un'eccezione per i tipi di dominio precedenti. Questa restrizione è dovuta al fatto che questo costruttore usa la struttura KERB_S4U_LOGON, introdotta per la prima volta in Windows Server 2003. Inoltre, questo costruttore richiede l'accesso in lettura all'attributo token-groups-global-and-universal (TG ROUTE) nell'account utente di destinazione.
Si applica a
WindowsIdentity(IntPtr, String, WindowsAccountType)
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato, dal tipo di autenticazione specificato e dal tipo di account di Windows specificato.
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)
Parametri
- userToken
-
IntPtr
nativeint
Token dell'account per l'utente per conto del quale è in esecuzione il codice.
- type
- String
(Solo uso informativo). Tipo di autenticazione utilizzato per identificare l'utente.
- acctType
- WindowsAccountType
Uno dei valori di enumerazione.
Eccezioni
Il chiamante non dispone delle autorizzazioni corrette.
oppure
Si è verificato un errore Win32.
Esempio
Il codice seguente illustra l'uso del WindowsIdentity costruttore per creare una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato, dal tipo di autenticazione specificato e dal tipo di account di Windows specificato. Questo esempio di codice fa parte di un esempio più ampio fornito per la WindowsIdentity classe .
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
Commenti
Nella tabella seguente vengono illustrati i valori iniziali delle proprietà per un'istanza di WindowsIdentity.
| Proprietà | Valore iniziale |
|---|---|
| IsAuthenticated | false |
Il valore del type parametro viene usato per impostare il AuthenticationType parametro . Se type è null, il sistema di sicurezza imposta su AuthenticationTypeNegotiate in Windows Vista e versioni successive del sistema operativo Windows e su Kerberos nelle versioni precedenti del sistema operativo Windows. Il sistema di sicurezza non usa questo valore; è solo per uso informativo.
Annotazioni
È possibile recuperare il token rappresentato chiamando userToken codice non gestito, ad esempio la funzione API LogonUser di Windows. Rilasciare userToken sempre chiamando la funzione API CloseHandle di Windows. Per altre informazioni sulla chiamata di codice non gestito, vedere Utilizzo di funzioni DLL non gestite.
Si applica a
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)
Inizializza una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato, dal tipo di autenticazione specificato, dal tipo di account di Windows specificato e dallo stato di autenticazione specificato.
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)
Parametri
- userToken
-
IntPtr
nativeint
Token dell'account per l'utente per conto del quale è in esecuzione il codice.
- type
- String
(Solo uso informativo). Tipo di autenticazione utilizzato per identificare l'utente.
- acctType
- WindowsAccountType
Uno dei valori di enumerazione.
- isAuthenticated
- Boolean
true per indicare che l'utente è autenticato; in caso contrario, false.
Eccezioni
Il chiamante non dispone delle autorizzazioni corrette.
oppure
Si è verificato un errore Win32.
Esempio
Il codice seguente illustra l'uso del WindowsIdentity costruttore per creare una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account di Windows specificato, dal tipo di autenticazione specificato, dal tipo di account di Windows specificato e dallo stato di autenticazione specificato. Questo esempio di codice fa parte di un esempio più ampio fornito per la WindowsIdentity classe .
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
Commenti
Il valore del type parametro viene usato per impostare il AuthenticationType parametro . Se type è null, il sistema di sicurezza imposta su AuthenticationTypeNegotiate in Windows Vista e versioni successive del sistema operativo Windows e su Kerberos nelle versioni precedenti del sistema operativo Windows. Il sistema di sicurezza non usa questo valore; è solo per uso informativo.
È possibile recuperare il token rappresentato chiamando userToken codice non gestito, ad esempio la funzione API LogonUser di Windows. Rilasciare userToken sempre chiamando la funzione API CloseHandle di Windows. Per altre informazioni sulla chiamata di codice non gestito, vedere Utilizzo di funzioni DLL non gestite.