다음을 통해 공유


IClientSecurity::QueryBlanket 메서드(objidl.h)

클라이언트가 지정된 프록시에서 호출하는 데 사용하는 인증 정보를 검색합니다.

구문

HRESULT QueryBlanket(
  [in]  IUnknown *pProxy,
  [out] DWORD    *pAuthnSvc,
  [out] DWORD    *pAuthzSvc,
  [out] OLECHAR  **pServerPrincName,
  [out] DWORD    *pAuthnLevel,
  [out] DWORD    *pImpLevel,
  [out] void     **pAuthInfo,
  [out] DWORD    *pCapabilites
);

매개 변수

[in] pProxy

프록시에 대한 포인터입니다. 이 매개 변수는 NULL일 수 없습니다. 자세한 내용은 주의 섹션을 참조하세요.

[out] pAuthnSvc

현재 인증 서비스입니다. 인증 서비스 상수 목록에서 가져온 단일 값입니다. 이 매개 변수는 NULL일 수 없습니다.

[out] pAuthzSvc

현재 권한 부여 서비스입니다. 권한 부여 상수 목록에서 가져온 단일 값입니다. 이 매개 변수는 NULL일 수 없습니다.

[out] pServerPrincName

현재 보안 주체 이름입니다. 문자열은 CoTaskMemAlloc 함수를 사용하여 호출 수신자에 의해 할당되며 CoTaskMemFree 함수를 사용하여 호출자가 해제해야 합니다. 실제 보안 주체 이름이 반환됩니다. EOAC_MAKE_FULLSIC 플래그는 기본 이름을 변환하는 데 허용되지 않습니다. 호출자가 NULL을 지정하면 현재 보안 주체 이름이 검색되지 않습니다.

[out] pAuthnLevel

현재 인증 수준입니다. 인증 수준 상수 목록에서 가져온 단일 값입니다. 이 매개 변수가 NULL이면 현재 인증 수준이 검색되지 않습니다.

[out] pImpLevel

현재 가장 수준입니다. 가장 수준 상수 목록에서 가져온 단일 값입니다. 이 매개 변수가 NULL이면 현재 가장 수준이 검색되지 않습니다.

[out] pAuthInfo

마지막 IClientSecurity::SetBlanket 호출(또는 기본값)에 전달된 클라이언트의 ID를 나타내는 핸들에 대한 포인터입니다. 기본값은 프록시가 해제될 때까지만 유효합니다. 호출자가 NULL을 지정하면 클라이언트 ID가 검색되지 않습니다.

반환된 핸들이 참조하는 구조체의 형식은 인증 서비스에 따라 달라집니다. NTLMSSP 및 Kerberos의 경우 클라이언트가 pAuthInfo 매개 변수의 구조를 CoInitializeSecurity에 지정하면 해당 값이 반환됩니다. Schannel의 경우 클라이언트에 대한 인증서를 인증서 관리자에서 검색할 수 있으면 해당 값이 여기에 반환됩니다. 그렇지 않으면 NULL 이 반환됩니다. 이는 값 자체를 가리키고 복사본이 아니므로 조작하거나 해제해서는 안 됩니다.

[out] pCapabilites

프록시의 기능입니다. 이러한 플래그는 EOLE_AUTHENTICATION_CAPABILITIES 열거형에 정의됩니다. 이 매개 변수가 NULL이면 현재 기능 플래그가 검색되지 않습니다.

반환 값

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

반환 코드 Description
S_OK
메서드가 완료되었습니다.
E_INVALIDARG
하나 이상의 인수가 잘못되었습니다.
E_OUTOFMEMORY
pServerPrincName 버퍼를 만들 메모리가 부족합니다.

설명

QueryBlanket 은 지정된 인터페이스 프록시의 호출에서 COM이 사용할 인증 정보를 검색하기 위해 클라이언트에서 호출됩니다. 프록시의 인터페이스에 대한 포인터를 사용하면 클라이언트는 먼저 QueryInterface 를 호출하여 IClientSecurity에 대한 포인터를 호출합니다. 그런 다음 이 포인터를 사용하여 클라이언트가 QueryBlanket을 호출한 다음 포인터를 해제합니다. 이 호출 시퀀스는 도우미 함수 CoQueryProxyBlanket에 캡슐화됩니다.

pProxy에서 인터페이스 포인터를 전달합니다. 그러나 프록시를 사용하지 않는 인터페이스에 포인터를 전달할 수는 없습니다. 따라서 해당 인터페이스에 대한 프록시가 만들어지지 않으므로 인터페이스 정의에 로컬 키워드(keyword) 있는 인터페이스에 대한 포인터를 전달할 수 없습니다. IUnknown 은 이 규칙의 예외입니다.

요구 사항

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

추가 정보

CoQueryProxyBlanket

CoSetProxyBlanket

IClientSecurity