다음을 통해 공유


IServerSecurity::RevertToSelf 메서드(objidl.h)

스레드의 인증 정보를 가장이 시작되기 전의 인증 정보로 복원합니다.

구문

HRESULT RevertToSelf();

반환 값

메서드가 성공하면 반환 값이 S_OK. 그렇지 않으면 E_FAIL.

설명

RevertToSelf 는 가장이 시작되기 전에 스레드의 인증 정보를 스레드의 인증 정보로 복원합니다. 서버가 현재 호출이 끝나기 전에 RevertToSelf 를 호출하지 않으면 COM에서 자동으로 호출됩니다.

현재 가장하지 않는 스레드에서 ImpersonateClient 가 호출되면 COM은 현재 스레드에 토큰을 저장합니다. RevertToSelf에 대한 후속 호출은 저장된 토큰을 복원하고 IsImpersonatingFALSE를 반환합니다. 즉, 서로 다른 IServerSecurity 개체를 사용하여 일련의 가장 호출이 수행되는 경우 RevertToSelfImpersonateClient 에 대한 첫 번째 호출이 수행되었을 때 스레드에 있던 토큰을 복원합니다. 또한 여러 ImpersonateClient 호출을 실행 취소하려면 RevertToSelf 호출이 하나만 필요합니다.

이 메서드는 ImpersonateClient의 가장 변경 내용만 되돌리기. 스레드 토큰이 SetThreadToken 또는 RpcImpersonateClient 함수를 통해 다른 수단으로 수정된 경우 이 함수의 결과는 정의되지 않습니다.

RevertToSelf 는 현재 메서드 호출에만 영향을 줍니다. 중첩된 메서드 호출이 있는 경우 각 호출에는 자체 가장 토큰이 있을 수 있으며 DCOM은 가장 토큰을 반환하기 전에 올바르게 복원합니다( CoRevertToSelf 또는 RevertToSelf 가 호출되었는지 여부에 관계 없이).

IServerSecurity가 나타내는 호출이 완료될 때까지 아파트의 모든 스레드에서 IServerSecurity의 instance 유효하다는 것을 이해하는 것이 중요합니다. 그러나 가장은 해당 스레드에서 현재 호출 기간 동안 특정 스레드에 로컬입니다. 따라서 동일한 아파트의 두 스레드가 동일한 IServerSecurity instance 사용하여 ImpersonateClient를 호출하는 경우 한 스레드는 다른 스레드에 영향을 주지 않고 RevertToSelf를 호출할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 objidl.h(ObjIdl.h 포함)

추가 정보

CoRevertToSelf

IServerSecurity