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
WindowsIdentity(IntPtr) |
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal token di account Windows specificato. |
WindowsIdentity(WindowsIdentity) |
Inizializza una nuova istanza della classe WindowsIdentity usando l'oggetto WindowsIdentity specificato. |
WindowsIdentity(String) |
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal nome dell'entità utente (UPN) specificato. |
WindowsIdentity(IntPtr, String) |
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal token di account Windows e dal tipo di autenticazione specificati. |
WindowsIdentity(SerializationInfo, StreamingContext) |
Obsoleti.
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dalle informazioni incluse in un flusso SerializationInfo. |
WindowsIdentity(String, String) |
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal nome dell'entità utente (UPN) e dal tipo di autenticazione specificati. |
WindowsIdentity(IntPtr, String, WindowsAccountType) |
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal token di account Windows, dal tipo di autenticazione e dal tipo di account Windows specificati. |
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal token di account Windows, dal tipo di autenticazione, dal tipo di account Windows e dallo stato di autenticazione specificati. |
WindowsIdentity(IntPtr)
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal token di account 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 di account dell'utente per conto del quale è in esecuzione il codice.
Eccezioni
userToken
è 0.
-oppure-
userToken
è duplicato e non valido per la rappresentazione.
Commenti
Nella tabella seguente vengono illustrati i valori delle proprietà iniziali per un'istanza di WindowsIdentity.
Proprietà | Valore iniziale |
---|---|
AuthenticationType | Negotiate |
WindowsAccountType | Normal |
IsAuthenticated | false |
Nota
È 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 classe WindowsIdentity usando l'oggetto WindowsIdentity specificato.
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 classe WindowsIdentity 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 dell'utente per conto del quale è in esecuzione il codice.
Eccezioni
Windows ha restituito il codice di stato Windows NT STATUS_ACCESS_DENIED.
La memoria disponibile è insufficiente.
Il chiamante non ha le autorizzazioni corrette.
-oppure-
Il computer non è collegato a un dominio di Windows 2003 o successivo.
-oppure-
Il computer non esegue Windows 2003 o versioni successive.
-oppure-
L'utente non è un membro del dominio al quale il computer è connesso.
Commenti
Un UPN ha ilformato nome dominionome 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. Un'eccezione potrebbe essere restituita a causa dell'impossibilità di accedere usando l'UPN fornito.
Nota
Questo costruttore è destinato all'uso solo nei computer aggiunti ai 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. Questo costruttore richiede inoltre l'accesso in lettura all'attributo token-groups-global-and-universal (TGGAU) nell'account utente di destinazione.
Si applica a
WindowsIdentity(IntPtr, String)
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal token di account Windows e dal tipo di autenticazione specificati.
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 di account dell'utente per conto del quale è in esecuzione il codice.
- type
- String
Solo a titolo informativo. Tipo di autenticazione usata per identificare l'utente.
Eccezioni
userToken
è 0.
-oppure-
userToken
è duplicato e non valido per la rappresentazione.
Esempio
Il codice seguente mostra l'uso del WindowsIdentity costruttore per creare una nuova istanza della WindowsIdentity classe per l'utente rappresentato dal token dell'account Windows specificato e dal tipo di autenticazione specificato. Questo esempio di codice fa parte di un esempio più grande 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 delle proprietà iniziali 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 impostato AuthenticationType su Negotiate
in Windows Vista e versioni successive del sistema operativo Windows e su Kerberos
su nelle versioni precedenti del sistema operativo Windows. Il sistema di sicurezza non usa questo valore; è solo per l'uso informativo.
Nota
È 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 classe WindowsIdentity per l'utente rappresentato dalle informazioni incluse in un flusso 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)
Parametri
- info
- SerializationInfo
Oggetto che contiene le informazioni sull'account per l'utente.
- context
- StreamingContext
Oggetto che indica le caratteristiche del flusso.
- Attributi
Eccezioni
Non è possibile serializzare un oggetto WindowsIdentity in più processi.
Commenti
Importante
La chiamata a questo metodo con dati non attendibili costituisce 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 classe WindowsIdentity per l'utente rappresentato dal nome dell'entità utente (UPN) e dal tipo di autenticazione specificati.
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 dell'utente per conto del quale è in esecuzione il codice.
- type
- String
Solo a titolo informativo. Tipo di autenticazione usata per identificare l'utente.
Eccezioni
Windows ha restituito il codice di stato Windows NT STATUS_ACCESS_DENIED.
La memoria disponibile è insufficiente.
Il chiamante non ha le autorizzazioni corrette.
-oppure-
Il computer non è collegato a un dominio di Windows 2003 o successivo.
-oppure-
Il computer non esegue Windows 2003 o versioni successive.
-oppure-
L'utente non è un membro del dominio al quale il computer è connesso.
Commenti
Il valore del type
parametro viene usato per impostare il AuthenticationType parametro. Se type
è null
, il sistema di sicurezza impostato AuthenticationType su Negotiate
in Windows Vista e versioni successive del sistema operativo Windows e su Kerberos
su nelle versioni precedenti del sistema operativo Windows. Il sistema di sicurezza non usa questo valore; è solo per l'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. Un'eccezione potrebbe essere restituita a causa dell'impossibilità di accedere usando l'UPN fornito.
Nota
Questo costruttore è destinato all'uso solo nei computer aggiunti ai 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. Questo costruttore richiede inoltre l'accesso in lettura all'attributo token-groups-global-and-universal (TGGAU) nell'account utente di destinazione.
Si applica a
WindowsIdentity(IntPtr, String, WindowsAccountType)
Inizializza una nuova istanza della classe WindowsIdentity per l'utente rappresentato dal token di account Windows, dal tipo di autenticazione e dal tipo di account Windows specificati.
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 di account dell'utente per conto del quale è in esecuzione il codice.
- type
- String
Solo a titolo informativo. Tipo di autenticazione usata per identificare l'utente.
- acctType
- WindowsAccountType
Uno dei valori di enumerazione.
Eccezioni
userToken
è 0.
-oppure-
userToken
è duplicato e non valido per la rappresentazione.
Esempio
Il codice seguente mostra l'uso del WindowsIdentity costruttore per creare una nuova istanza della WindowsIdentity classe per l'utente rappresentata dal token dell'account Windows specificato, dal tipo di autenticazione specificato e dal tipo di account Windows specificato. Questo esempio di codice fa parte di un esempio più grande 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 delle proprietà iniziali 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 impostato AuthenticationType su Negotiate
in Windows Vista e versioni successive del sistema operativo Windows e su Kerberos
su nelle versioni precedenti del sistema operativo Windows. Il sistema di sicurezza non usa questo valore; è solo per l'uso informativo.
Nota
È 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 classe WindowsIdentity per l'utente rappresentato dal token di account Windows, dal tipo di autenticazione, dal tipo di account Windows e dallo stato di autenticazione specificati.
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 di account dell'utente per conto del quale è in esecuzione il codice.
- type
- String
Solo a titolo informativo. Tipo di autenticazione usata per identificare l'utente.
- acctType
- WindowsAccountType
Uno dei valori di enumerazione.
- isAuthenticated
- Boolean
true
per indicare che l'utente è autenticato; false
per indicare la situazione opposta.
Eccezioni
userToken
è 0.
-oppure-
userToken
è duplicato e non valido per la rappresentazione.
Esempio
Il codice seguente illustra l'uso del WindowsIdentity costruttore per creare una nuova istanza della WindowsIdentity classe per l'utente rappresentata dal token dell'account Windows specificato, il tipo di autenticazione specificato, il tipo di account Windows specificato e lo stato di autenticazione specificato. Questo esempio di codice fa parte di un esempio più grande 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 impostato AuthenticationType su Negotiate
in Windows Vista e versioni successive del sistema operativo Windows e su Kerberos
su nelle versioni precedenti del sistema operativo Windows. Il sistema di sicurezza non usa questo valore; è solo per l'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.