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。

备注

CLR 在多种方案下调用 SetSecurityContext。 执行类和模块构造函数和终结器前,CLR 调用 SetSecurityContext 以避免主机执行失败。 然后,执行构造函数或终结器后,使用对 SetSecurityContext 的另一个调用将安全上下文重置为其初始状态。 输入输出完成端口也是类似模式。 如果主机实现 IHostIoCompletionManager,则 CLR 在主机调用 ICLRIOCompletionManager::OnComplete 后调用 SetSecurityContext

在工作线程的异步点,CLR 在 ThreadPool.QueueUserWorkItemIHostThreadPoolManager::QueueUserWorkItem 内调用 SetSecurityContext,具体取决于主机或 CLR 是否正在实现线程池。

要求

平台:请参阅系统要求

标头:MSCorEE.h

库:作为资源包含在 MSCorEE.dll 中

.NET Framework 版本:自 2.0 起可用

请参阅