Freigeben über


IHostSecurityManager::SetSecurityContext-Methode

Legt den Sicherheitskontext des derzeit ausgeführten Threads fest.

Syntax

HRESULT SetSecurityContext (  
    [in]  EContextType eContextType,  
    [out] IHostSecurityContext** ppSecurityContext  
);  

Parameter

eContextType
[in] Einer der EContextType-Werte, der angibt, welchen Kontexttyp die Common Language Runtime (CLR) auf dem Host platziert.

ppSecurityContext
[out] Ein Zeiger auf die Adresse eines neuen IHostSecurityContext-Objekts.

Rückgabewert

HRESULT BESCHREIBUNG
S_OK SetSecurityContext wurde erfolgreich zurückgegeben.
HOST_E_CLRNOTAVAILABLE Die CLR wurde nicht in einen Prozess geladen, oder die CLR befindet sich in einem Zustand, in dem sie keinen verwalteten Code ausführen oder den Aufruf nicht erfolgreich verarbeiten kann.
HOST_E_TIMEOUT Timeout des Aufrufs.
HOST_E_NOT_OWNER Der Aufrufer besitzt die Sperre nicht.
HOST_E_ABANDONED Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine blockierte Fiber darauf gewartet hat.
E_FAIL Es ist ein unbekannter katastrophaler Fehler aufgetreten. Wenn eine Methode E_FAIL zurückgibt, kann die CLR nicht mehr innerhalb des Prozesses verwendet werden. Nachfolgende Aufrufe von Hostingmethoden geben HOST_E_CLRNOTAVAILABLE zurück.

Bemerkungen

Die CLR ruft SetSecurityContext in mehreren Szenarien auf. Bevor sie Klassen- und Modulkonstruktoren und Finalizer ausführt, ruft die CLR SetSecurityContext auf, um den Host vor Ausführungsfehlern zu schützen. Nach der Ausführung des Konstruktors oder Finalizers setzt sie dann den Sicherheitskontext auf den ursprünglichen Zustand zurück, indem sie einen weiteren Aufruf von SetSecurityContext verwendet. Ein ähnliches Muster tritt bei E/A-Abschluss auf. Wenn der Host IHostIoCompletionManager implementiert, ruft die CLR SetSecurityContext auf, nachdem der Host ICLRIoCompletionManager::OnComplete aufgerufen hat.

An asynchronen Punkten in Workerthreads ruft SetSecurityContext die CLR innerhalb ThreadPool.QueueUserWorkItem oder innerhalb von IHostThreadPoolManager::QueueUserWorkItem auf, je nachdem, ob der Host oder die CLR den Threadpool implementiert.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: MSCorEE.h

Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.

.NET Framework-Versionen: Seit 2.0 verfügbar.

Siehe auch