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

추가 정보

CoGetCallContext

CoQueryProxyBlanket

IServerSecurity::QueryBlanket

COM의 보안