Метод 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.