Freigeben über


IX509Enrollment2::InstallResponse2-Methode (certenroll.h)

Die InstallResponse2-Methode installiert eine Zertifikatkette auf dem Computer der Endentität. Das Bytearray, das die Antwort enthält, wird mithilfe von Distinguished Encoding Rules (DER) codiert, wie durch den Standard "Abstrakte Syntax Notation One (ASN.1)" definiert. Sie müssen das DER-codierte Bytearray in einer Zeichenfolge angeben, die entweder eine reine binäre Sequenz ist oder Unicode-codiert ist. Diese Methode ist webfähig.

Syntax

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
);

Die Parameter

[in] Restrictions

Ein InstallResponseRestrictionFlags-Enumerationswert , der den Typ von Zertifikaten angibt, die installiert werden können. Dabei kann es sich um einen oder mehrere der folgenden Werte handeln.

Wert Bedeutung
AllowNone
Installieren Sie keine nicht vertrauenswürdigen Zertifikate oder Zertifikate, für die keine entsprechende Anforderung vorhanden ist.
AllowNoOutstandingRequest
Erstellen Sie den privaten Schlüssel aus der Zertifikatantwort und nicht aus dem Dummy-Zertifikat. Dadurch wird das Dummy-Zertifikat optional. Wenn dieser Wert nicht festgelegt ist, muss das Dummyzertifikat vorhanden sein, und der private Schlüssel wird daraus extrahiert.
AllowUntrustedCertificate
Installieren Sie nicht vertrauenswürdige Endentitäts- und Zertifizierungsstellenzertifikate . Zertifizierungsstellenzertifikate umfassen Stamm- und untergeordnete Zertifizierungsstellenzertifikate. Endentitätszertifikate werden im persönlichen Speicher installiert, und Zertifizierungsstellenzertifikate werden im Zertifizierungsstellenspeicher installiert.
AllowUntrustedRoot
Führen Sie dieselbe Aktion wie das Flag "AllowUntrustedCertificate " aus, installiert aber auch das Zertifikat, auch wenn die Zertifikatkette nicht erstellt werden kann, da der Stamm nicht vertrauenswürdig ist.
Anmerkung Unter Windows Vista ist das Verhalten dieses Flags identisch mit dem für das AllowUntrustedCertificate-Flag definierten. Sie können einen nicht vertrauenswürdigen Stamm installieren, der mit Windows Vista mit SP1 beginnt.
 

[in] strResponse

Eine BSTR-Variable , die die DER-codierte Antwort enthält.

[in] Encoding

Ein EncodingType-Enumerationswert , der den Typ der Codierung angibt, die auf die Zeichenfolge angewendet wird, die die DER-codierte Antwort enthält.

[in, optional] strPassword

Ein optionales Kennwort für die Zertifikatinstallation. Dies kann NULL sein, um anzugeben, dass kein Kennwort verwendet wird. Wenn Sie das Kennwort verwendet haben, löschen Sie es aus dem Speicher, indem Sie die SecureZeroMemory-Funktion aufrufen. Weitere Informationen zum Schützen des Kennworts finden Sie unter "Behandeln von Kennwörtern".

[in] strEnrollmentPolicyServerUrl

Ein BSTR , der die URL des Zertifikatregistrierungsrichtlinienservers (CEP) enthält.

[in] strEnrollmentPolicyServerID

Ein BSTR , der einen Bezeichner für den CEP-Server enthält.

[in] EnrollmentPolicyServerFlags

Ein PolicyServerUrlFlags-Enumerationswert . Dies kann einer der folgenden Werte sein:

Wert Bedeutung
PsfLocationGroupPolicy
Die CEP-Server-URL wird von einem Administrator in der Gruppenrichtlinie angegeben.
PsfLocationRegistry
Die CEP-Server-URL wird in der Registrierung angegeben.
PsfUseClientId
Gibt an, dass Zertifikatregistrierungen und Erneuerungen clientspezifische Daten in einem ClientId-Attribut enthalten. Beispiele sind der Name des kryptografischen Dienstanbieters, die Windows-Versionsnummer, der Benutzername, der COMPUTER-DNS-Name und der DNS-Name des Domänencontrollers. Dieses Kennzeichen kann durch Gruppenrichtlinie festgelegt werden.

Dieses Kennzeichen wurde hinzugefügt, um Datenschutzbedenken zu beheben, die bei der Registrierung von Servern auftreten können, die von Anderen Als administratoren verwaltet werden, die die Gesamtstruktur verwalten, in der sich der Benutzer befindet. Indem Sie dieses Kennzeichen nicht festlegen, können Sie verhindern, dass persönliche Informationen an nicht lokale Administratoren gesendet werden.

PsfAutoEnrollmentEnabled
Die automatische Zertifikatregistrierung ist aktiviert.
PsfAllowUnTrustedCA
Gibt an, dass das Zertifikat der ausstellenden Zertifizierungsstelle vom Client nicht als vertrauenswürdig eingestuft werden muss, um ein von der Zertifizierungsstelle signiertes Zertifikat zu installieren.

[in] authFlags

Ein X509EnrollmentAuthFlags-Enumerationswert , der den Clientauthentifizierungstyp angibt. Für Windows 7 kann nur X509AuthCertificate aus den folgenden Werten ausgewählt werden.

Wert Bedeutung
X509AuthAnonymous
Anonyme Authentifizierung.
X509AuthKerberos
Kerberos-Authentifizierung.
X509AuthUsername
Löschen von Textbenutzernamen und Kennwortauthentifizierung.
Anmerkung Der Benutzername und das Kennwort werden vor der Übertragung verschlüsselt und sicher im Anmeldeinformationstresor auf dem CEP-Server gespeichert.
 
X509AuthCertificate
Clientauthentifizierungszertifikat auf dem lokalen Computer installiert und vom Server verwendet, um die Identität des Clients zu überprüfen.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion S_OK zurück.

Wenn die Funktion fehlschlägt, wird ein HRESULT-Wert zurückgegeben, der den Fehler angibt. Mögliche Werte sind die Werte in der folgenden Tabelle, sind jedoch nicht beschränkt. Eine Liste allgemeiner Fehlercodes finden Sie unter "Allgemeine HRESULT-Werte".

Rückgabecode Description
E_ACCESSDENIED
Diese Methode wurde aus dem Web aufgerufen, und entweder AllowNoOutstandingRequest oder AllowUntrustedCertificate wurde im Parameter "Restrictions " angegeben.
HRESULT_FROM_WIN32(ERROR_ARITHMETIC_OVERFLOW
Die Länge der Zeichenfolge, die das Kennwort enthält, überschreitet 64 KB.
OLE_E_BLANK
Das Registrierungsobjekt wurde nicht initialisiert.

Bemerkungen

Die InstallResponse2-Methode :

  1. Ruft das Dummy-Zertifikat aus dem externen Speicher ab.
  2. Ruft das in der Antwort enthaltene Zertifikat ab und installiert es auf dem Computer.
  3. Kopiert Eigenschaften aus dem Dummy-Zertifikat im externen Speicher auf das neu installierte Zertifikat im persönlichen Speicher.

Bevor Sie die InstallResponse2-Methode aufrufen, müssen Sie das IX509Enrollment-Objekt initialisieren, indem Sie eine der folgenden Methoden aufrufen.

Wenn Sie diese Methode aus dem Web aufrufen, können Sie im Parameter "Restrictions" nur "AllowNone" oder "AllowUntrustedRoot" angeben. Wenn Sie AllowNoOutstandingRequest oder AllowUntrustedCertificate angeben, gibt die Methode einen E_ACCESSDENIED Fehler zurück.

Die letzten vier Parameter (strEnrollmentPolicyServerUrl, strEnrollmentPolicyServerID, EnrollmentPolicyServerFlags und authFlags) sind nicht in der InstallResponse-Methode enthalten. Sie ermöglichen es Ihnen, dem installierten Zertifikat einen Eigenschaftswert auf die gleiche Weise wie die ICertPropertyEnrollmentPolicyServer-Schnittstelle hinzuzufügen.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 7 [nur Desktop-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Fenster
Header certenroll.h

Siehe auch

IX509Enrollment2