SqlContext.WindowsIdentity Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.