Compartir a través de


SqlContext.WindowsIdentity Propiedad

Definición

Identidad en Microsoft Windows del llamador.

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

Valor de propiedad

WindowsIdentity

Una instancia de WindowsIdentity que representa la identidad en Windows del llamador, o bien, null si el cliente se autenticó utilizando la autenticación de SQL Server.

Ejemplos

En el ejemplo siguiente, se muestra cómo obtener la identidad de Windows del cliente de la llamada y suplantarla.

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

Comentarios

El código de Common Language Runtime (CLR) dentro de SQL Server siempre se invoca en el contexto de la cuenta de proceso. Si es necesario que el código realice una acción mediante la identidad del usuario que llama en lugar de la identidad del proceso de SQL Server, se debe obtener un token de suplantación a través de esta propiedad. Después de obtener el objeto WindowsIdentity, los autores de la llamada pueden suplantar la cuenta del cliente y realizar acciones en su nombre.

Si se invoca desde fuera de SQL Server, se produce una NotSupportedException excepción .

Solo los ensamblados marcados con los permisos EXTERNAL_ACCESS o UNSAFE tienen acceso a esta propiedad.

Esta propiedad es de sólo lectura.

Se aplica a