SqlContext.WindowsIdentity Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A identidade Microsoft Windows do chamador.
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 da propriedade
Uma instância WindowsIdentity que representa a identidade Windows do chamador ou null
, se o cliente foi autenticado usando a autenticação do SQL Server.
Exemplos
O exemplo a seguir mostra como obter a identidade do Windows do cliente que fez a chamada e representar o cliente.
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
Comentários
O código CLR (Common Language Runtime) dentro SQL Server sempre é invocado no contexto da conta de processo. Se for necessário que o código execute uma ação usando chamar a identidade do usuário em vez da identidade do processo SQL Server, um token de representação deverá ser obtido por meio dessa propriedade. Depois de obter o objeto WindowsIdentity, os chamadores podem representar a conta de cliente e executar ações em seu nome.
Se invocado de fora SQL Server, um NotSupportedException é lançado.
Outros assemblies marcados com EXTERNAL_ACCESS
ou permissões UNSAFE
podem acessar esta propriedade.
Esta propriedade é somente para leitura.