CoQueryClientBlanket 함수(combaseapi.h)
서버에서 호출하여 현재 스레드에서 실행되는 메서드를 호출한 클라이언트에 대해 알아봅니다. IServerSecurity::QueryBlanket에 대한 도우미 함수입니다.
구문
HRESULT CoQueryClientBlanket(
[out, optional] DWORD *pAuthnSvc,
[out, optional] DWORD *pAuthzSvc,
[out, optional] LPOLESTR *pServerPrincName,
[out, optional] DWORD *pAuthnLevel,
[out, optional] DWORD *pImpLevel,
[out, optional] RPC_AUTHZ_HANDLE *pPrivs,
[in, out, optional] DWORD *pCapabilities
);
매개 변수
[out, optional] pAuthnSvc
현재 인증 서비스를 수신하는 변수에 대한 포인터입니다. 인증 서비스 상수에서 가져온 단일 값입니다. 호출자가 NULL을 지정하면 현재 인증 서비스가 검색되지 않습니다.
[out, optional] pAuthzSvc
현재 권한 부여 서비스를 수신하는 변수에 대한 포인터입니다. 권한 부여 상수에서 가져온 단일 값입니다. 호출자가 NULL을 지정하는 경우 현재 권한 부여 서비스가 검색되지 않습니다.
[out, optional] pServerPrincName
현재 보안 주체 이름입니다. 이 문자열은 CoTaskMemAlloc를 사용하여 호출 수신자가 할당하며, CoTaskMemFree를 사용하여 호출자가 해제해야 합니다. 기본적으로 Schannel 보안 주체 이름은 msstd 형식입니다. EOAC_MAKE_FULLSIC pCapabilities 매개 변수에 지정된 경우 fullsic 양식이 반환됩니다. msstd 및 fullsic 양식에 대한 자세한 내용은 보안 주체 이름을 참조하세요. 호출자가 NULL을 지정하면 현재 보안 주체 이름이 검색되지 않습니다.
[out, optional] pAuthnLevel
현재 인증 수준을 수신하는 변수에 대한 포인터입니다. 인증 수준 상수에서 가져온 단일 값입니다. 호출자가 NULL을 지정하는 경우 현재 인증 수준이 검색되지 않습니다.
[out, optional] pImpLevel
이 매개 변수는 NULL이어야 합니다.
[out, optional] pPrivs
클라이언트 애플리케이션에 대한 권한 정보를 수신하는 핸들에 대한 포인터입니다. 핸들이 참조하는 구조체의 형식은 인증 서비스에 따라 달라집니다. 애플리케이션은 메모리를 쓰거나 해제해서는 안 됩니다. 정보는 현재 호출 기간 동안만 유효합니다. NTLMSSP 및 Kerberos의 경우 클라이언트 주체를 식별하는 문자열입니다. Schannel의 경우 클라이언트의 인증서를 나타내는 CERT_CONTEXT 구조입니다. 클라이언트에 인증서가 없으면 NULL 이 반환됩니다. 호출자가 NULL을 지정하면 현재 권한 정보가 검색되지 않습니다. RPC_AUTHZ_HANDLE 참조하세요.
[in, out, optional] pCapabilities
호출의 기능을 나타내는 플래그를 반환하는 포인터입니다. Schannel이 인증 서비스인 경우 보안 주체 이름을 전체 형식으로 반환하도록 요청하려면 호출자가 이 매개 변수에서 EOAC_MAKE_FULLSIC 플래그를 설정할 수 있습니다. 호출자가 NULL을 지정하면 현재 기능이 검색되지 않습니다.
반환 값
이 함수는 표준 반환 값 E_INVALIDARG, E_OUTOFMEMORY 및 S_OK 반환할 수 있습니다.
설명
CoQueryClientBlanket 은 현재 스레드에서 실행되는 메서드를 호출한 클라이언트에 대한 보안 정보를 가져오기 위해 서버에서 호출됩니다. 이 함수는 다음과 같은 일반적인 호출 시퀀스를 캡슐화합니다(오류 처리 제외).
CoGetCallContext(IID_IServerSecurity, (void**)&pss);
pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName,
pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
pss->Release();
이 시퀀스는 CoGetCallContext 를 호출하여 IServerSecurity 에 대한 포인터를 가져와서 결과 포인터를 사용하여 IServerSecurity::QueryBlanket 을 호출한 다음 포인터를 해제합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | combaseapi.h(Objbase.h 포함) |
라이브러리 | Ole32.lib |
DLL | Ole32.dll |