IX509Enrollment2::InstallResponse2 方法 (certenroll.h)

InstallResponse2 方法會在終端實體計算機上安裝憑證鏈結。 包含回應的位元組陣列會使用 可辨別編碼規則 (DER) 編碼,如抽象語法表示法一 (ASN.1) 標準所定義。 您必須在純二進位序列或 Unicode 編碼的字串中指定 DER 編碼位元組陣列。 此方法已啟用 Web。

語法

HRESULT InstallResponse2(
  [in]           InstallResponseRestrictionFlags Restrictions,
  [in]           BSTR                            strResponse,
  [in]           EncodingType                    Encoding,
  [in, optional] BSTR                            strPassword,
  [in]           BSTR                            strEnrollmentPolicyServerUrl,
  [in]           BSTR                            strEnrollmentPolicyServerID,
  [in]           PolicyServerUrlFlags            EnrollmentPolicyServerFlags,
  [in]           X509EnrollmentAuthFlags         authFlags
);

參數

[in] Restrictions

InstallResponseRestrictionFlags 列舉值,指定可安裝的憑證類型。 這可以是下列一或多個值。

意義
AllowNone
請勿安裝沒有對應要求的不受信任憑證或憑證。
AllowNoOutstandingRequest
從憑證回應建立 私鑰 ,而不是從虛擬憑證建立私鑰。 這可讓虛擬憑證成為選擇性的。 如果未設定此值,則虛擬憑證必須存在,而且會從中擷取私鑰。
AllowUntrustedCertificate
安裝不受信任的結束實體和 證書頒發機構單位 憑證。 證書頒發機構單位憑證包括跟證書和次級 CA 憑證。 終端實體憑證會安裝到個人存放區,並將 CA 憑證安裝到證書頒發機構單位存放區。
AllowUntrustedRoot
執行與 AllowUntrustedCertificate 旗標相同的動作,但即使無法建置憑證鏈結,仍會安裝憑證,因為根目錄不受信任。
注意 在 Windows Vista 上,此旗標的行為與 針對 AllowUntrustedCertificate 旗標定義的行為相同。 您可以從 Windows Vista SP1 開始安裝不受信任的根目錄。
 

[in] strResponse

包含 DER 編碼回應的 BSTR 變數。

[in] Encoding

EncodingType 列舉值,指定套用至包含 DER 編碼回應之字串的編碼類型。

[in, optional] strPassword

憑證安裝的選擇性密碼。 這可以是 NULL ,表示未使用任何密碼。 當您完成使用密碼時,請呼叫 SecureZeroMemory 函式,從記憶體中清除密碼。 如需保護密碼的詳細資訊,請參閱 處理密碼

[in] strEnrollmentPolicyServerUrl

BSTR,其中包含憑證註冊原則的 URL (CEP) 伺服器。

[in] strEnrollmentPolicyServerID

包含 CEP 伺服器的識別碼的 BSTR

[in] EnrollmentPolicyServerFlags

PolicyServerUrlFlags 列舉值。 這可以是下列其中一個值。

意義
PsfLocationGroupPolicy
系統管理員會在組策略中指定 CEP 伺服器 URL。
PsfLocationRegistry
CEP 伺服器 URL 是在登錄中指定。
PsfUseClientId
指定憑證註冊和更新包含 ClientId 屬性中的用戶端特定數據。 範例包括密碼編譯服務提供者的名稱、Windows 版本號碼、使用者名稱、計算機 DNS 名稱和域控制器 DNS 名稱。 此旗標可由組策略設定。

此旗標已納入,以解決註冊期間可能發生的隱私權考慮,這些伺服器是由管理使用者所在樹系以外的系統管理員所管理。 若未設定此旗標,您可以防止將個人資訊傳送給非本機系統管理員。

PsfAutoEnrollmentEnabled
已啟用自動憑證註冊。
PsfAllowUnTrustedCA
指定用戶端不需要信任發行 CA 的憑證,才能安裝由 CA 簽署的憑證。

[in] authFlags

指定客戶端驗證類型的 X509EnrollmentAuthFlags 列舉值。 針對 Windows 7,只能從下列值中選擇 X509AuthCertificate

意義
X509AuthAnonymous
匿名驗證。
X509AuthKerberos
Kerberos 驗證。
X509AuthUsername
純文字用戶名稱和密碼驗證。
注意 使用者名稱和密碼會在傳輸之前加密,並安全地儲存在 CEP 伺服器上的認證保存庫中。
 
X509AuthCertificate
安裝在本機電腦上的用戶端驗證憑證,並由伺服器用來驗證用戶端的身分識別。

傳回值

如果函式成功,函式會傳回 S_OK

如果函式失敗,它會傳回 指出錯誤的 HRESULT 值。 可能的值包括 (但不限於) 下表中的這些值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

傳回碼 Description
E_ACCESSDENIED
這個方法是從 Web 呼叫, 而 AllowNoOutstandingRequestAllowUntrustedCertificate 是在 Restrictions 參數中指定。
HRESULT_FROM_WIN32 (ERROR_ARITHMETIC_OVERFLOW
包含密碼的字串長度超過 64 KB。
OLE_E_BLANK
尚未初始化註冊物件。

備註

InstallResponse2 方法:

  1. 從外部存放區擷取虛擬憑證。
  2. 擷取回應中包含的憑證,並將其安裝在計算機上。
  3. 將屬性從外部存放區中的虛擬憑證複製到個人存放區中新安裝的憑證。

呼叫 InstallResponse2 方法之前,您必須呼叫下列其中一種方法來初始化 IX509Enrollment 物件。

如果您從 Web 呼叫此方法,則只能在 Restrictions 參數中指定 AllowNoneAllowUntrustedRoot。 如果您指定 AllowNoOutstandingRequestAllowUntrustedCertificate,此方法會傳回 E_ACCESSDENIED 錯誤。

最後四個參數 (strEnrollmentPolicyServerUrlstrEnrollmentPolicyServerIDEnrollmentPolicyServerFlagsauthFlags) 不包含在 InstallResponse 方法中。 它們可讓您以 與 ICertPropertyEnrollmentPolicyServer 介面相同的方式,將屬性值新增至已安裝的憑證。

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
目標平台 Windows
標頭 certenroll.h

另請參閱

IX509Enrollment2