SqlContext.WindowsIdentity Свойство

Определение

Удостоверение Microsoft Windows для вызывающего кода.

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

Значение свойства

WindowsIdentity

Экземпляр WindowsIdentity, представляющий удостоверение Windows для вызывающего кода, или null, если клиент прошел проверку подлинности с помощью средств проверки подлинности SQL Server.

Примеры

В следующем примере показано, как получить удостоверение Windows вызывающего клиента и олицетворить этого клиента.

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

Комментарии

Код среды CLR в SQL Server всегда вызывается в контексте учетной записи процесса. Если коду необходимо выполнить действие с помощью вызова удостоверения пользователя вместо удостоверения процесса SQL Server, то маркер олицетворения должен быть получен с помощью этого свойства. Получив объект WindowsIdentity, вызывающие могут олицетворять учетную запись клиента и выполнять действия от их имени.

При вызове извне SQL Server NotSupportedException возникает исключение.

Доступ к этому свойству могут получить только сборки, имеющие разрешения EXTERNAL_ACCESS или UNSAFE.

Это свойство доступно только для чтения.

Применяется к