SaslInitializeSecurityContextA 함수(sspi.h)
SaslInitializeSecurityContext 함수는 보안 지원 공급자 인터페이스InitializeSecurityContext(일반) 함수에 대한 표준 호출을 래핑하고 서버에서 SASL 서버 쿠키를 처리합니다.
통사론
SECURITY_STATUS SEC_ENTRY SaslInitializeSecurityContextA(
[in] PCredHandle phCredential,
[in] PCtxtHandle phContext,
[in] LPSTR pszTargetName,
[in] unsigned long fContextReq,
[in] unsigned long Reserved1,
[in] unsigned long TargetDataRep,
[in] PSecBufferDesc pInput,
[in] unsigned long Reserved2,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
매개 변수
[in] phCredential
보안 컨텍스트빌드하는 데 사용되는 AcquireCredentialsHandle 함수입니다.
SaslInitializeSecurityContext 함수를 사용하려면 최소한 아웃바운드 자격 증명이 필요합니다.
[in] phContext
CtxtHandle 구조체에 대한 포인터입니다.
[in] pszTargetName
컨텍스트의 대상을 나타내는 유니코드 또는 ANSI 문자열에 대한 포인터입니다.
[in] fContextReq
컨텍스트의 요구 사항을 나타내는 비트 플래그입니다. 이 매개 변수에 사용되는 플래그에는 접두사로 ISC_REQ_; 예: ISC_REQ_DELEGATE. 다음 특성 플래그의 조합을 지정합니다.
다양한 특성에 대한 자세한 내용은 컨텍스트 요구 사항참조하세요.
[in] Reserved1
예약된 값; 은 0이어야 합니다.
[in] TargetDataRep
대상의 바이트 순서 지정과 같은 데이터 표현을 나타냅니다. SECURITY_NATIVE_DREP 또는 SECURITY_NETWORK_DREP 수 있습니다.
[in] pInput
패키지에 대한 입력으로 제공된 버퍼에 대한 포인터를 포함하는 SecBufferDesc 구조체에 대한 포인터입니다. 함수에 대한 첫 번째 호출에서 포인터는 NULL
SASL에는 서버에서 받은 챌린지를 포함하는 SECBUFFER_TOKEN 형식의 단일 버퍼가 필요합니다.
[in] Reserved2
예약된 값; 은 0이어야 합니다.
[out] phNewContext
CtxtHandle 구조체에 대한 포인터입니다. SaslInitializeSecurityContext 함수에 대한 첫 번째 호출에서 이 포인터는 새 컨텍스트 핸들을 받습니다. 두 번째 호출에서 phNewContextphContext 매개 변수에 지정된 핸들과 같을 수 있습니다.
[in, out] pOutput
출력 데이터를 수신하는 SecBuffer 구조체에 대한 포인터를 포함하는 SecBufferDesc 구조체에 대한 포인터입니다. 버퍼가 입력에 SEC_READWRITE 입력된 경우 출력에 있습니다. 시스템은 요청된 경우(ISC_REQ_ALLOCATE_MEMORY 통해) 보안 토큰에 대한 버퍼를 할당하고 보안 토큰에 대한 버퍼 설명자의 주소를 채웁니다.
[out] pfContextAttr
설정된
이 매개 변수에 사용되는 플래그에는 ISC_RET_DELEGATE 같은 ISC_RET_ 접두사로 지정됩니다.
유효한 값 목록은 fContextReq 매개 변수를 참조하세요.
최종 함수 호출이 성공적으로 반환될 때까지 보안 관련 특성을 확인하지 마세요. ASC_RET_ALLOCATED_MEMORY 플래그와 같이 보안과 관련이 없는 특성 플래그는 최종 반환 전에 확인할 수 있습니다.
[out, optional] ptsExpiry
컨텍스트의 만료 시간을 수신하는 TimeStamp 구조체에 대한 포인터입니다. 보안 패키지는 항상 현지 시간으로 이 값을 반환하는 것이 좋습니다. 이 매개 변수는 선택 사항이며 수명이 짧은 클라이언트에 대해 NULL 전달되어야 합니다.
반환 값
호출이 성공적으로 완료되면 이 함수는 SEC_E_OK 반환합니다. 다음 표에서는 몇 가지 가능한 오류 반환 값을 보여줍니다.
반환 코드 | 묘사 |
---|---|
|
Authz 처리는 허용되지 않습니다. |
|
메모리가 부족하여 요청을 완료할 수 없습니다. |
|
pOutput 매개 변수에 토큰 버퍼가 없거나 메시지의 암호를 해독하지 못했습니다. |
발언
메모
sspi.h 헤더는 SAslInitializeSecurityContext를 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | 지원되지 않는 항목 |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | sspi.h(Security.h 포함) |
라이브러리 | Secur32.lib |
DLL | Secur32.dll |