Condividi tramite


SqlContext.WindowsIdentity Proprietà

Definizione

Identità Microsoft Windows del chiamante.

public:
 static property System::Security::Principal::WindowsIdentity ^ WindowsIdentity { System::Security::Principal::WindowsIdentity ^ get(); };
public static System.Security.Principal.WindowsIdentity WindowsIdentity { get; }
member this.WindowsIdentity : System.Security.Principal.WindowsIdentity
Public Shared ReadOnly Property WindowsIdentity As WindowsIdentity

Valore della proprietà

WindowsIdentity

Istanza di WindowsIdentity che rappresenta l'identità Windows del chiamante oppure null se il client è stato autenticato mediante l'autenticazione di SQL Server.

Esempio

Nell'esempio riportato di seguito viene illustrato come ottenere l'identità di Windows del client chiamante e rappresentare il client.

WindowsIdentity clientId = null;
WindowsImpersonationContext impersonatedUser = null;

clientId = SqlContext.WindowsIdentity;

// This outer try block is used to thwart exception filter attacks which would prevent
// the inner finally block from executing and resetting the impersonation.
try
{
   try
   {
      impersonatedUser = clientId.Impersonate();
      if (impersonatedUser != null)
      {
        // Perform some action using impersonation.
      }
   }
   finally
   {
      if (impersonatedUser != null)
         impersonatedUser.Undo();
   }
}
catch
{
   throw;
}
Dim clientId As WindowsIdentity
Dim impersonatedUser As WindowsImpersonationContext

clientId = SqlContext.WindowsIdentity

Try 
   Try
   
      impersonatedUser = clientId.Impersonate()

      If impersonatedUser IsNot Nothing Then
         ' Perform some action using impersonation.
      End If

   Finally

     If impersonatedUser IsNot Nothing Then
         impersonatedUser.Undo
     End If

   End Try

Catch e As Exception

   throw e

End Try

Commenti

Il codice CLR (Common Language Runtime) all'interno di SQL Server viene sempre richiamato nel contesto dell'account del processo. Se è necessario che il codice esegua un'azione usando l'identità dell'utente anziché l'identità del processo di SQL Server, è necessario ottenere un token di rappresentazione tramite questa proprietà. Dopo avere ottenuto l'oggetto WindowsIdentity, i chiamanti possono rappresentare l'account del client ed eseguirne le azioni.

Se richiamato dall'esterno SQL Server, viene generato un NotSupportedException oggetto.

Solo gli assembly contrassegnati con le autorizzazioni EXTERNAL_ACCESS o UNSAFE possono accedere a questa proprietà.

Questa proprietà è di sola lettura.

Si applica a