SqlContext.WindowsIdentity Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Identità Microsoft Windows del chiamante.
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
Valore della proprietà
Istanza di WindowsIdentity che rappresenta l'identità Windows del chiamante oppure null
se il client è stato autenticato mediante l'autenticazione di SQL Server.
Esempio
Nell'esempio riportato di seguito viene illustrato come ottenere l'identità di Windows del client chiamante e rappresentare il client.
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
Commenti
Il codice CLR (Common Language Runtime) all'interno di SQL Server viene sempre richiamato nel contesto dell'account del processo. Se è necessario che il codice esegua un'azione usando l'identità dell'utente anziché l'identità del processo di SQL Server, è necessario ottenere un token di rappresentazione tramite questa proprietà. Dopo avere ottenuto l'oggetto WindowsIdentity, i chiamanti possono rappresentare l'account del client ed eseguirne le azioni.
Se richiamato dall'esterno SQL Server, viene generato un NotSupportedException oggetto.
Solo gli assembly contrassegnati con le autorizzazioni EXTERNAL_ACCESS
o UNSAFE
possono accedere a questa proprietà.
Questa proprietà è di sola lettura.