Поделиться через


Метод IHostSecurityManager::SetSecurityContext

Задает контекст безопасности выполняющегося в данный момент потока.

Синтаксис

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

Параметры

eContextType
[in] Одно из значений EContextType , указывающее, какой тип контекста размещает среда CLR на узле.

ppSecurityContext
[out] Указатель на адрес нового объекта IHostSecurityContext .

Возвращаемое значение

HRESULT Описание:
S_OK SetSecurityContext возвращено успешно.
HOST_E_CLRNOTAVAILABLE Среда CLR не была загружена в процесс или среда CLR находится в состоянии, в котором она не может выполнить управляемый код или обработать вызов успешно.
HOST_E_TIMEOUT Время ожидания звонка истекло.
HOST_E_NOT_OWNER Вызывающий объект не владеет блокировкой.
HOST_E_ABANDONED Событие было отменено во время ожидания заблокированного потока или волокна.
E_FAIL Произошла неизвестная катастрофическая ошибка. Когда метод возвращает E_FAIL, среда CLR больше не используется в рамках процесса. Последующие вызовы методов размещения возвращают HOST_E_CLRNOTAVAILABLE.

Комментарии

Вызовы SetSecurityContext среды CLR в нескольких сценариях. Перед выполнением конструкторов классов и модулей и методов завершения среда CLR вызывает SetSecurityContext для защиты узла от сбоев выполнения. Затем он сбрасывает контекст безопасности в исходное состояние после выполнения конструктора или метода завершения, используя другой вызов .SetSecurityContext Аналогичный шаблон происходит с завершением ввода-вывода. Если узел реализует IHostIoCompletionManager, среда CLR вызывает SetSecurityContext после вызова узла ICLRIoCompletionManager::OnComplete.

В асинхронных точках рабочих потоков среда CLR вызывает SetSecurityContext внутри ThreadPool.QueueUserWorkItem или внутри IHostThreadPoolManager::QueueUserWorkItem в зависимости от того, реализует ли узел или среда CLR пул потоков.

Требования

Платформы: см. раздел Требования к системе.

Заголовка: MSCorEE.h

Библиотека: Включается в качестве ресурса в MSCorEE.dll

версии платформа .NET Framework: доступно с версии 2.0.

См. также раздел