SqlContext.WindowsIdentity Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Die Microsoft Windows-Identität des Aufrufers.
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
Eigenschaftswert
Eine WindowsIdentity-Instanz, die die Windows-Identität des Aufrufers darstellt, oder null
, wenn der Client mithilfe der SQL Server-Authentifizierung authentifiziert wurde.
Beispiele
Im folgenden Beispiel wird das Abrufen der Windows-Identität des aufrufenden Clients und der Identitätswechsel des Clients veranschaulicht.
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
Hinweise
Der code "Common language runtime" (CLR) innerhalb SQL Server wird immer im Kontext des Prozesskontos aufgerufen. Wenn es für den Code erforderlich ist, eine Aktion mithilfe der Identität des Aufrufs des Benutzers anstelle der SQL Server Prozessidentität auszuführen, sollte ein Identitätstoken über diese Eigenschaft abgerufen werden. Nach dem Erhalt des WindowsIdentity-Objekts können aufrufende Benutzer einen Identitätswechsel für das Clientkonto durchführen und Aktionen mit der neuen Identität ausführen.
Wenn sie von außerhalb SQL Server aufgerufen wird, wird eine NotSupportedException ausgelöst.
Nur mit der EXTERNAL_ACCESS
-Berechtigung oder UNSAFE
-Berechtigung markierte Assemblys können auf diese Eigenschaft zugreifen.
Diese Eigenschaft ist schreibgeschützt.