Método IServerSecurity::RevertToSelf (objidl.h)

Restaura as informações de autenticação de um thread para o que era antes do início da representação.

Sintaxe

HRESULT RevertToSelf();

Retornar valor

Se o método for bem-sucedido, o valor retornado será S_OK. Caso contrário, será E_FAIL.

Comentários

RevertToSelf restaura as informações de autenticação em um thread para as informações de autenticação no thread antes do início da representação. Se o servidor não chamar RevertToSelf antes do final da chamada atual, ele será chamado automaticamente pelo COM.

Quando ImpersonateClient é chamado em um thread que não está sendo representado no momento, COM salva o token atualmente no thread. Uma chamada subsequente para RevertToSelf restaura o token salvo e IsImpersonating retornará FALSE. Isso significa que, se uma série de chamadas de representação forem feitas usando diferentes objetos IServerSecurity , RevertToSelf restaurará o token que estava no thread quando a primeira chamada para ImpersonateClient foi feita. Além disso, apenas uma chamada RevertToSelf é necessária para desfazer qualquer número de chamadas ImpersonateClient .

Esse método só reverter alterações de representação feitas por ImpersonateClient. Se o token de thread for modificado por outros meios (por meio das funções SetThreadToken ou RpcImpersonateClient ), o resultado dessa função será indefinido.

RevertToSelf afeta apenas a invocação do método atual. Se houver invocações de método aninhadas, cada invocação poderá ter seu próprio token de representação e o DCOM restaurará corretamente o token de representação antes de retornar a eles (independentemente de CoRevertToSelf ou RevertToSelf ter sido chamado).

É importante entender que uma instância de IServerSecurity é válida em qualquer thread no apartment até que a chamada representada por IServerSecurity seja concluída. No entanto, a representação é local para um thread específico durante a chamada atual nesse thread. Portanto, se dois threads no mesmo apartment usarem a mesma instância IServerSecurity para chamar ImpersonateClient, um thread poderá chamar RevertToSelf sem afetar o outro.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho objidl.h (inclua ObjIdl.h)

Confira também

CoRevertToSelf

Iserversecurity