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