Partilhar via


SqlContext.WindowsIdentity Propriedade

Definição

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

WindowsIdentity

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.

Aplica-se a