Compartilhar via


Método IHostSecurityManager::SetSecurityContext

Define o contexto de segurança do thread em execução no momento.

Sintaxe

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

Parâmetros

eContextType
[entrada] Um dos valores EContextType, indicando qual tipo de contexto o CLR (Common Language Runtime) está colocando no host.

ppSecurityContext
[saída] Um ponteiro para o endereço de um novo objeto IHostSecurityContext.

Valor Retornado

HRESULT Descrição
S_OK SetSecurityContext retornado com êxito.
HOST_E_CLRNOTAVAILABLE O CLR não foi carregado em um processo, ou o CLR está em um estado no qual não pode executar código gerenciado ou processar a chamada com êxito.
HOST_E_TIMEOUT Uma chamada atingiu o tempo limite.
HOST_E_NOT_OWNER O chamador não possui o bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto uma fibra ou um thread bloqueado estava esperando por ele.
E_FAIL Uma falha catastrófica desconhecida ocorreu. Quando um método retorna E_FAIL, o CLR não pode mais ser usado no processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE.

Comentários

O CLR chama SetSecurityContext em vários cenários. Antes de executar construtores e finalizadores de classe e módulo, o CLR chama SetSecurityContext para proteger o host contra falhas de execução. Em seguida, ele redefine o contexto de segurança para seu estado original após a execução do construtor ou finalizador, usando outra chamada para SetSecurityContext. Um padrão semelhante ocorre com a conclusão de E/S. Se o host implementar IHostIoCompletionManager, o CLR chamará SetSecurityContext após o host chamar ICLRIoCompletionManager::OnComplete.

Em pontos assíncronos em threads de trabalho, o CLR chama SetSecurityContext de dentro do ThreadPool.QueueUserWorkItem ou de dentro de IHostThreadPoolManager::QueueUserWorkItem, dependendo se o host ou o CLR está implementando o pool de threads.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: MSCorEE.h

Biblioteca: incluída como um recurso no MSCorEE.dll

Versões do .NET Framework: disponíveis desde 2.0

Confira também