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, welcher 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 erfolgreich zurückgegeben.
HOST_E_CLRNOTAVAILABLE Die CLR wurde nicht in einen Prozess geladen, oder die CLR befindet sich in einem Zustand, in dem verwalteter Code nicht ausgeführt oder der Aufruf erfolgreich verarbeitet werden kann.
HOST_E_TIMEOUT Timeout des Anrufs.
HOST_E_NOT_OWNER Der Aufrufer besitzt die Sperre nicht.
HOST_E_ABANDONED Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine Faser darauf wartete.
E_FAIL Unbekannter katastrophaler Fehler. Wenn eine Methode E_FAIL zurückgibt, kann der CLR nicht mehr innerhalb des Prozesses verwendet werden. Nachfolgende Aufrufe von Hostingmethoden geben HOST_E_CLRNOTAVAILABLE zurück.

Bemerkungen

Die CLR ruft in mehreren Szenarien auf SetSecurityContext . Bevor Klassen- und Modulkonstruktoren und Finalizer ausgeführt werden, ruft die CLR-Aufrufe SetSecurityContext auf, um den Host vor Ausführungsfehlern zu schützen. Anschließend setzt er den Sicherheitskontext nach der Ausführung des Konstruktors oder Finalizers mithilfe eines anderen Aufrufs auf SetSecurityContextden ursprünglichen Zustand zurück. Ein ähnliches Muster tritt bei Abschluss von E/A auf. Wenn der Host IHostIoCompletionManager implementiert, ruft SetSecurityContext die CLR nach dem Host ICLRIoCompletionManager::OnComplete auf.

Bei asynchronen Punkten in Arbeitsthreads 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.

Kopfball: MSCorEE.h

Bibliothek: In MSCorEE.dll als Ressource enthalten

.NET Framework-Versionen: Verfügbar seit 2.0

Siehe auch