Metodo IServerSecurity::RevertToSelf (objidlbase.h)

Ripristina le informazioni di autenticazione di un thread a quello che era prima dell'inizio della rappresentazione.

Sintassi

HRESULT RevertToSelf();

Valore restituito

Se il metodo ha esito positivo, il valore restituito è S_OK. In caso contrario, è E_FAIL.

Commenti

RevertToSelf ripristina le informazioni di autenticazione in un thread alle informazioni di autenticazione nel thread prima dell'inizio della rappresentazione. Se il server non chiama RevertToSelf prima della fine della chiamata corrente, verrà chiamato automaticamente da COM.

Quando ImpersonateClient viene chiamato su un thread che non rappresenta attualmente, COM salva il token attualmente nel thread. Una chiamata successiva a RevertToSelf ripristina il token salvato e IsImpersonating restituirà quindi FALSE. Ciò significa che se viene eseguita una serie di chiamate di rappresentazione usando oggetti IServerSecurity diversi, RevertToSelf ripristina il token presente nel thread quando è stata effettuata la prima chiamata a ImpersonateClient . Inoltre, è necessaria una sola chiamata RevertToSelf per annullare un numero qualsiasi di chiamate ImpersonateClient .

Questo metodo restituirà solo le modifiche di rappresentazione apportate da ImpersonateClient. Se il token di thread viene modificato da altri mezzi (tramite le funzioni SetThreadToken o RpcImpersonateClient ) il risultato di questa funzione non è definito.

RevertToSelf influisce solo sulla chiamata al metodo corrente. Se sono presenti chiamate al metodo annidato, ogni chiamata può avere il proprio token di rappresentazione e DCOM ripristina correttamente il token di rappresentazione prima di tornare a loro (indipendentemente dal fatto che CoRevertToSelf o RevertToSelf sia stato chiamato).

È importante comprendere che un'istanza di IServerSecurity è valida in qualsiasi thread nell'appartamento fino al completamento della chiamata rappresentata da IServerSecurity . Tuttavia, la rappresentazione è locale a un thread specifico per la durata della chiamata corrente nel thread. Pertanto, se due thread nello stesso appartamento usano la stessa istanza di IServerSecurity per chiamare ImpersonateClient, un thread può chiamare RevertToSelf senza influire sull'altro.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione objidlbase.h (include ObjIdl.h)

Vedi anche

CoRevertToSelf

IServerSecurity