Partilhar via


IHostSecurityManager::SetSecurityContext Método

Define o contexto de segurança da thread em execução atual.

Sintaxe

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

Parâmetros

eContextType [dentro] Um dos valores EContextType , indica que tipo de contexto o tempo de execução da linguagem comum (CLR) está a colocar no anfitrião.

ppSecurityContext [fora] Um apontador para o endereço de um novo objeto IHostSecurityContext .

Valor de retorno

HRESULT Descrição
S_OK SetSecurityContext regressou com sucesso.
HOST_E_CLRNOTAVAILABLE O CLR não foi carregado num processo, ou o CLR está num estado em que não consegue executar código gerido nem processar a chamada com sucesso.
HOST_E_TIMEOUT A chamada expirou.
HOST_E_NOT_OWNER O chamador não é dono da fechadura.
HOST_E_ABANDONED Um evento foi cancelado enquanto um fio ou fibra bloqueada estava à espera.
E_FAIL Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR deixa de ser utilizado dentro do processo. As chamadas subsequentes para sistemas de alojamento regressam HOST_E_CLRNOTAVAILABLE.

Observações

O CLR convoca SetSecurityContext vários cenários. Antes de executar construtores e finalizadores de classes e módulos, o CLR chama SetSecurityContext para proteger o host de falhas de execução. Depois, redefine o contexto de segurança para o 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 I/O. Se o host implementar o IHostIoCompletionManager, o CLR chama SetSecurityContext depois do host chamar ICLRIoCompletionManager::OnComplete.

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

Requisitos

Plataformas: Consulte Requisitos do sistema.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como recurso em MSCorEE.dll

Versões do .NET Framework: Disponível desde: 2.0

Consulte também