IObjectContext::IsCallerInRole 메서드(comsvcs.h)

개체의 직접 호출자가 지정된 역할(직접 또는 그룹의 일부)에 있는지 여부를 나타냅니다.

구문

HRESULT IsCallerInRole(
  [in]  BSTR bstrRole,
  [out] BOOL *pfIsInRole
);

매개 변수

[in] bstrRole

역할의 이름입니다.

[out] pfIsInRole

호출 자가 지정된 역할에 있으면 TRUE이고, FALSE 이면 FALSE입니다. 보안을 사용하지 않는 경우에도 이 매개 변수가 TRUE 로 설정됩니다.

반환 값

이 메서드는 다음 값을 반환할 수 있습니다.

반환 코드 설명
S_OK
bstrRole 매개 변수에 지정된 역할은 인식된 역할이며 pbIsInRole 매개 변수에 반환된 부울 결과는 호출자가 해당 역할에 있는지 여부를 나타냅니다.
CONTEXT_E_ROLENOTFOUND
bstrRole 매개 변수에 지정된 역할이 없습니다.
E_INVALIDARG
전달된 인수 중 하나 이상이 잘못되었습니다.
E_UNEXPECTED
예기치 않은 오류가 발생했습니다. 이 문제는 한 개체가 IObjectContext 포인터를 다른 개체에 전달하고 다른 개체가 이 포인터를 사용하여 IsCallerInRole 을 호출하는 경우에 발생할 수 있습니다. IObjectContext 포인터는 원래 가져온 개체의 컨텍스트 외부에서 유효하지 않습니다.

설명

이 메서드를 사용하여 현재 실행 중인 메서드의 직접 호출자가 특정 역할과 연결되어 있는지 여부를 확인합니다. 역할은 지정된 COM+ 애플리케이션의 모든 구성 요소에 대한 특정 액세스 권한이 있는 사용자 또는 사용자 그룹을 나타내는 기호 이름입니다. 개발자는 구성 요소를 만들 때 역할을 정의하고 역할은 배포 시 개별 사용자 또는 그룹에 매핑됩니다.

IsCallerInRole 은 현재 실행 중인 메서드의 직접 호출자에만 적용됩니다. (직접 호출자는 현재 서버 프로세스로 호출하는 프로세스입니다. 기본 클라이언트 프로세스 또는 서버 프로세스일 수 있습니다.) IsCallerInRole 은 현재 메서드가 호출된 호출 시퀀스를 시작한 프로세스 또는 해당 시퀀스의 다른 호출자에게 적용되지 않습니다.

IsCallerInRole은 호출하는 개체가 클라이언트 프로세스에서 실행 중일 때 TRUE를 반환하므로 IsCallerInRole을 호출하기 전에 IsSecurityEnabled를 호출하는 것이 좋습니다. 보안을 사용하도록 설정하지 않으면 IsCallerInRole 은 정확한 결과를 반환하지 않습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 comsvcs.h

추가 정보

IObjectContext