ISecurityProperty::GetOriginalCallerSID 메서드(comsvcs.h)
현재 메서드가 호출된 호출 순서를 시작한 기본 프로세스의 보안 식별자를 검색합니다.
원래 호출자에 대한 정보를 가져오는 기본 방법은 ISecurityCallContext 인터페이스를 사용하는 것입니다.
구문
HRESULT GetOriginalCallerSID(
[out] PSID *pSID
);
매개 변수
[out] pSID
현재 메서드가 호출된 호출 순서를 시작한 기본 프로세스의 보안 ID에 대한 참조입니다.
반환 값
이 메서드는 다음 값뿐만 아니라 표준 반환 값 E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED 및 E_FAIL 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
현재 개체에 대한 호출을 시작한 기본 프로세스의 보안 ID는 pSid 매개 변수에 반환됩니다. |
|
구성 요소를 애플리케이션으로 가져오지 않았거나 COM+ CreateInstance 메서드 중 하나를 사용하여 개체를 만들지 않았기 때문에 현재 개체에 연결된 컨텍스트가 없습니다. |
설명
GetOriginalCallerSID 메서드를 사용하여 프로세스의 생성자(또는 작성자)가 아니라 현재 메서드가 호출된 호출 순서를 시작한 원래 프로세스의 보안 ID를 확인합니다. 개체에 대한 포인터는 일련의 서버와 사용자를 통해 전달할 수 있지만 GetOriginalCallerSID 는 해당 사용자가 개체의 원래 작성자가 아니더라도 항상 프로세스의 첫 번째 서버와 사용자를 반환합니다. 다음 시나리오에서는 GetOriginalCallerSID 메서드의 기능을 보여 줍니다.
- A 서버에서 사용자 A로 실행되는 기본 프로세스 1은 서버 B에서 사용자 B로 실행되는 개체 X를 만듭니다.
- 기본 프로세스 1은 개체 X에 대한 참조를 서버 D에서 사용자 D로 실행되는 기본 프로세스 2에 전달합니다.
- 기본 프로세스 2는 해당 참조를 사용하여 개체 X를 호출합니다.
- 개체 X는 서버 C에서 실행되는 Object Y를 호출합니다. 개체 Y가 GetOriginalCallerSID를 호출하면 원래 개체를 만든 사용자 A가 아니라 사용자 D의 보안 ID가 반환됩니다.
참고 일반적으로 개체의 원래 호출자는 원래 작성자와 동일한 프로세스입니다. 원래 호출자와 원래 작성자가 다른 유일한 상황은 원래 작성자가 다른 프로세스에 대한 참조를 전달하고 다른 프로세스가 호출 순서를 시작하는 상황입니다(이전 예제와 같이).
사용을 마치면 보안 ID에서 ReleaseSID 를 호출해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | comsvcs.h |