SaslInitializeSecurityContextA 函式 (sspi.h)
SaslInitializeSecurityContext 函式會包裝 安全性支援提供者介面的標準呼叫,InitializeSecurityContext (一般) 函式,並從伺服器處理 SASL 伺服器 Cookie。
語法
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 結構的指標。 在第一次呼叫 SaslInitializeSecurityContext 函式時,此指標會 NULL。 在第二個呼叫中,此參數是第一次呼叫所傳回之部分格式內容的句柄指標,phNewContext 參數。
[in] pszTargetName
指出內容目標的 Unicode 或 ANSI 字串指標。
[in] fContextReq
指出內容需求的位旗標。 用於此參數的旗標前面會加上 ISC_REQ_;例如:ISC_REQ_DELEGATE。 指定下列屬性旗標的組合。
如需各種屬性的進一步描述,請參閱 內容需求。
[in] Reserved1
保留值;必須是零。
[in] TargetDataRep
表示目標上的數據表示法,例如位元組排序。 可以是SECURITY_NATIVE_DREP或SECURITY_NETWORK_DREP。
[in] pInput
SecBufferDesc 結構的指標,其中包含做為封裝輸入之緩衝區的指標。 第一次呼叫函式時,指標必須 NULL。 在對函式的後續呼叫中,它是配置足夠的記憶體來保存遠端對等所傳回之令牌之緩衝區的指標。
SASL 需要類型為 SECBUFFER_TOKEN 的單一緩衝區,其中包含從伺服器收到的挑戰。
[in] Reserved2
保留值;必須是零。
[out] phNewContext
CtxtHandle 結構的指標。 在第一次呼叫 SaslInitializeSecurityContext 函式時,此指標會收到新的內容句柄。 在第二個呼叫中,phNewContext 可以和 phContext 參數中指定的句柄相同。
[in, out] pOutput
SecBufferDesc 結構的指標,其中包含接收輸出數據之 SecBuffer 結構的指標。 如果緩衝區在輸入中輸入為SEC_READWRITE,則會在輸出中。 系統會在要求時配置安全性令牌的緩衝區(透過ISC_REQ_ALLOCATE_MEMORY),並在安全性令牌的緩衝區描述元中填入位址。
[out] pfContextAttr
要接收一組位旗標的變數指標,指出已建立之
用於此參數的旗標前面會加上ISC_RET_,例如ISC_RET_DELEGATE。
如需有效值的清單,請參閱 fContextReq 參數
在最終函數調用成功傳回之前,請勿檢查安全性相關屬性。 屬性旗標與安全性無關,例如ASC_RET_ALLOCATED_MEMORY旗標,可以在最終傳回之前檢查。
[out, optional] ptsExpiry
TimeStamp 結構的指標,該結構會接收內容的到期時間。 建議 安全性套件 一律以當地時間傳回此值。 此參數是選擇性的,應該針對短期用戶端傳遞NULL
傳回值
如果呼叫成功完成,此函式會傳回SEC_E_OK。 下表顯示一些可能的失敗傳回值。
傳回碼 | 描述 |
---|---|
|
不允許 Authz 處理。 |
|
記憶體不足,無法完成要求。 |
|
pOutput 參數中沒有令牌緩衝區,或訊息無法解密。 |
言論
注意
sspi.h 標頭會根據 UNICODE 預處理器常數的定義,將 SaslInitializeSecurityContext 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 不支援 |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | sspi.h (include Security.h) |
連結庫 | Secur32.lib |
DLL | Secur32.dll |