QueryContextAttributesA 함수(sspi.h)

QueryContextAttributes(CredSSP) 함수를 사용하면 전송 애플리케이션이 보안 컨텍스트의 특정 특성에 대해 CredSSP(자격 증명 보안 지원 공급자) 보안 패키지를 쿼리할 수 있습니다.

구문

SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(
  [in]  PCtxtHandle   phContext,
  [in]  unsigned long ulAttribute,
  [out] void          *pBuffer
);

매개 변수

[in] phContext

쿼리할 보안 컨텍스트에 대한 핸들입니다.

[in] ulAttribute

반환할 컨텍스트의 특성입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다. 달리 지정하지 않는 한 특성은 클라이언트와 서버 모두에 적용할 수 있습니다.

의미
SECPKG_ATTR_C_ACCESS_TOKEN
0x80000012
pBuffer 매개 변수에는 현재 보안 컨텍스트에 대한 액세스 토큰을 지정하는 SecPkgContext_AccessToken 구조체에 대한 포인터가 포함되어 있습니다.

이 특성은 서버에서만 지원됩니다.

SECPKG_ATTR_C_FULL_ACCESS_TOKEN
0x80000082
pBuffer 매개 변수에는 현재 보안 컨텍스트에 대한 액세스 토큰을 지정하는 SecPkgContext_AccessToken 구조체에 대한 포인터가 포함되어 있습니다.

이 특성은 서버에서만 지원됩니다.

SECPKG_ATTR_CERT_TRUST_STATUS
0x80000084
pBuffer 매개 변수에는 인증서에 대한 신뢰 정보를 지정하는 CERT_TRUST_STATUS 구조체에 대한 포인터가 포함되어 있습니다.

이 특성은 클라이언트에서만 지원됩니다.

SECPKG_ATTR_CREDS
0x80000080
pBuffer 매개 변수에는 클라이언트 자격 증명을 지정하는 SecPkgContext_ClientCreds 구조체에 대한 포인터가 포함되어 있습니다.

클라이언트 자격 증명은 사용자 이름 및 암호 또는 사용자 이름 및 스마트 카드 PIN일 수 있습니다.

이 특성은 서버에서만 지원됩니다.

SECPKG_ATTR_CREDS_2
0x80000086
pBuffer 매개 변수에는 클라이언트 자격 증명을 지정하는 SecPkgContext_ClientCreds 구조체에 대한 포인터가 포함되어 있습니다.

클라이언트 자격 증명이 사용자 이름 및 암호인 경우 버퍼는 압축된 KERB_INTERACTIVE_LOGON 구조입니다.

클라이언트 자격 증명이 사용자 이름 및 스마트 카드 PIN인 경우 버퍼는 압축된 KERB_CERTIFICATE_LOGON 구조입니다.

클라이언트 자격 증명이 온라인 ID 자격 증명인 경우 버퍼는 마샬링된 SEC_WINNT_AUTH_IDENTITY_EX2 구조입니다.

이 특성은 CredSSP 서버에서만 지원됩니다.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

SECPKG_ATTR_NEGOTIATION_PACKAGE
0x80000081
pBuffer 매개 변수에는 Microsoft Negotiate 공급자가 협상한 인증 패키지의 이름을 지정하는 SecPkgContext_PackageInfo">SecPkgContext_PackageInfo 구조체에 대한 포인터가 포함되어 있습니다.
SECPKG_ATTR_PACKAGE_INFO
10
pBuffer 매개 변수는 SecPkgContext_PackageInfo">SecPkgContext_PackageInfo 구조체에 대한 포인터를 포함합니다.

사용 중인 SSP에 대한 정보를 반환합니다.

SECPKG_ATTR_SERVER_AUTH_FLAGS
0x80000083
pBuffer 매개 변수에는 현재 보안 컨텍스트의 플래그에 대한 정보를 지정하는 SecPkgContext_Flags 구조체에 대한 포인터가 포함되어 있습니다.

이 특성은 클라이언트에서만 지원됩니다.

SECPKG_ATTR_SIZES
0x0
pBuffer 매개 변수는 SecPkgContext_Sizes 구조체에 대한 포인터를 포함합니다.

메시지별 함수 및 인증 교환에 사용되는 구조체의 크기를 쿼리합니다.

SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES
124
pBuffer 매개 변수는 SecPkgContext_SubjectAttributes 구조체에 대한 포인터를 포함합니다.

이 값은 연결의 보안 특성에 대한 정보를 반환합니다.

이 값은 CredSSP 서버에서만 지원됩니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

[out] pBuffer

특성을 수신하는 구조체에 대한 포인터입니다. 구조체 형식은 ulAttribute 매개 변수의 값에 따라 달라집니다.

반환 값

함수가 성공하면 SEC_E_OK 반환합니다.

함수가 실패하면 다음 오류 코드를 반환할 수 있습니다.

반환 코드/값 설명
SEC_E_INVALID_HANDLE
0x80100003
함수가 실패했습니다. phContext 매개 변수는 불완전한 컨텍스트에 대한 핸들을 지정합니다.
SEC_E_UNSUPPORTED_FUNCTION
0x80090302
함수가 실패했습니다. ulAttribute 매개 변수의 값이 잘못되었습니다.

설명

pBuffer 매개 변수가 가리키는 구조는 쿼리되는 특성에 따라 달라집니다.

호출자는 pBuffer 구조 자체를 할당해야 하지만 SSP는 pBuffer 구조의 가변 크기 멤버를 보유하는 데 필요한 모든 메모리를 할당합니다. SSP에서 할당한 메모리는 FreeContextBuffer 함수를 호출하여 해제해야 합니다.

참고

sspi.h 헤더는 QUERYContextAttributes를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 sspi.h(Security.h 포함)
라이브러리 Secur32.lib
DLL Secur32.dll

추가 정보

CERT_CONTEXT

FreeContextBuffer

SSPI 함수

SecPkgContext_ClientCreds

SecPkgContext_Sizes