Condividi tramite


WindowsIdentity Costruttori

Definizione

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

userToken è 0.

oppure

userToken è duplicato e non valido per la rappresentazione.

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

userToken è 0.

oppure

userToken è duplicato e non valido per la rappresentazione.

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

userToken è 0.

oppure

userToken è duplicato e non valido per la rappresentazione.

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

userToken è 0.

oppure

userToken è duplicato e non valido per la rappresentazione.

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.

Si applica a