Condividi tramite


WindowsIdentity Costruttori

Definizione

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.

Il chiamante non ha le autorizzazioni corrette.

-oppure-

Errore Win32.

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.

Il chiamante non ha le autorizzazioni corrette.

-oppure-

Errore Win32.

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.

Il chiamante non ha le autorizzazioni corrette.

-oppure-

Errore Win32.

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.

Il chiamante non ha le autorizzazioni corrette.

-oppure-

Errore Win32.

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.

Il chiamante non ha le autorizzazioni corrette.

-oppure-

Errore Win32.

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.

Si applica a