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, представляющий удостоверение 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
.
Это свойство доступно только для чтения.