共用方式為


SaslAcceptSecurityContext 函式 (sspi.h)

SaslAcceptSecurityContext 函式會包裝對 Security Support Provider InterfaceAcceptSecurityContext (一般) 函式的標準呼叫,並包含建立 SASL 伺服器 Cookie。

語法

SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
  [in]            PCredHandle    phCredential,
  [in, optional]  PCtxtHandle    phContext,
  [in]            PSecBufferDesc pInput,
  [in]            unsigned long  fContextReq,
  [in]            unsigned long  TargetDataRep,
  [out]           PCtxtHandle    phNewContext,
  [in, out]       PSecBufferDesc pOutput,
  [out]           unsigned long  *pfContextAttr,
  [out, optional] PTimeStamp     ptsExpiry
);

參數

[in] phCredential

伺服器的認證句柄。 伺服器會呼叫 AcquireCredentialsHandle 函式,並將 INBOUND 旗標設定為擷取此句柄。

[in, optional] phContext

CtxtHandle 結構的指標。 在第一次呼叫 acceptSecurityContext (一般)時,此指標 NULL。 在後續的呼叫中,phContext 是第一次呼叫在 phNewContext 參數中傳回的部分格式內容的句柄。

[in] pInput

SecBufferDesc 結構指標,由用戶端呼叫 InitializeSecurityContext (General) 所產生, 函式,其中包含輸入緩衝區描述元。

SASL 需要類型為 SECBUFFER_TOKEN的單一緩衝區。 第一次呼叫 acceptSecurityContext (一般) 函式的第一次呼叫緩衝區是空的,並包含第二次呼叫從用戶端接收的挑戰回應。

[in] fContextReq

指定伺服器建立內容所需屬性的位旗標。 位旗標可以使用位OR 作業來合併。 下表顯示可能的值。

價值 意義
ASC_REQ_CONFIDENTIALITY
加密和解密訊息。

僅適用於 SASL 的摘要式 SSP。

ASC_REQ_HTTP
使用摘要進行 HTTP。 請省略此旗標,以使用摘要作為 SASL 機制。

[in] TargetDataRep

表示目標上的數據表示法,例如位元組排序。 此值可以是SECURITY_NATIVE_DREP或SECURITY_NETWORK_DREP。

[out] phNewContext

CtxtHandle 結構的指標。 在第一次呼叫 AcceptSecurityContext (一般)時,此指標會收到新的內容句柄。 在後續的呼叫中,phNewContext 可以和 phContext 參數中指定的句柄相同。

[in, out] pOutput

包含輸出緩衝區描述元之 SecBufferDesc 結構的指標。 這個緩衝區會傳送至用戶端,以輸入其他呼叫,以 InitializeSecurityContext (一般)。 即使函式傳回SEC_E_OK,仍可能會產生輸出緩衝區。 產生的任何緩衝區都必須傳送回用戶端應用程式。

[out] pfContextAttr

接收一組位旗標的變數指標,指出已建立內容的屬性。 如需各種屬性的描述,請參閱 內容需求。 用於此參數的旗標前面會加上ASC_RET,例如ASC_RET_DELEGATE。

在最終函數調用成功傳回之前,請勿檢查安全性相關屬性。 屬性旗標與安全性無關,例如ASC_RET_ALLOCATED_MEMORY旗標,可以在最終傳回之前檢查。

[out, optional] ptsExpiry

TimeStamp 結構的指標,該結構會接收內容的到期時間。 建議 安全性套件 一律以當地時間傳回此值。

注意 直到最後一次呼叫驗證程式為止,內容到期時間可能不正確,因為交涉稍後階段將提供更多資訊。 因此,ptsTimeStamp 必須在最後一次呼叫函式之前 NULL
 

傳回值

如果呼叫成功完成,此函式會傳回SEC_E_OK。 下表顯示一些可能的失敗傳回值。

傳回碼 描述
SEC_E_ALGORITHM_MISMATCH
不允許 Authz 處理。
SEC_E_INSUFFICIENT_MEMORY
記憶體不足,無法完成要求。
SEC_E_INVALID_TOKEN
pOutput 參數中沒有令牌緩衝區,或訊息無法解密。

言論

識別傳回SEC_E_OK之 AcceptSecurityContext (一般) 函式的最終呼叫。 如果產生傳回令牌,SASL 處理會暫停一次往返用戶端,以允許處理最終令牌。 交換完成之後,SEC_E_CONTINUE_NEEDED會傳回應用程式,並使用 SSPI 訊息函式加密的額外 SASL 伺服器 Cookie。 初始伺服器 Cookie 指出是否支援 INTEGRITY 和 PRIVACY。 用戶端會處理此初始伺服器 Cookie,而用戶端會傳回用戶端 Cookie 來指出用戶端要求的服務。 用戶端 Cookie 接著會由伺服器解密,最後的服務會針對下列訊息流量來決定。

要求

要求 價值
最低支援的用戶端 不支援
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 sspi.h (include Security.h)
連結庫 Secur32.lib
DLL Secur32.dll