ICertServerExit::GetCertificateProperty-Methode (certif.h)
Die GetCertificateProperty-Methode gibt eine benannte Eigenschaft aus einem Zertifikat zurück.
Syntax
HRESULT GetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[out] VARIANT *pvarPropertyValue
);
Parameter
[in] strPropertyName
Gibt die abzurufende benannte Eigenschaft an. Es gibt einen Bestandssatz von Zertifikateigenschaften, die als Namenseigenschaften bezeichnet werden, die immer gültig sind und durch Aufrufen dieser Methode abgerufen werden können. Informationen zu diesen Eigenschaften finden Sie unter Namenseigenschaften. Weitere Eigenschaften, die abgerufen werden können, sind die Zertifikateigenschaften.
Die folgenden Eigenschaften sind für Zertifikate eindeutig und können von GetCertificateProperty gelesen werden.
Wert | Bedeutung |
---|---|
|
Gültigkeitsdatum des Zertifikatanfangs |
|
Ablaufdatum des Zertifikats |
|
Objektbezeichner des Antragstellerschlüsselalgorithmus (Subject Key Algorithm Object Identifier , OID) |
|
Unformatierte Zertifikatbytes |
|
Betreffschlüssel |
|
Parameter des Antragstellerschlüsselalgorithmus |
|
Interne Anforderungs-ID |
|
Seriennummer des Zertifikats |
Auf die Eigenschaften DistinguishedName, RawName und SerialNumber des Zertifikats kann getCertificateProperty erst zugreifen, nachdem das Richtlinienmodul die Verarbeitung der Anforderung abgeschlossen und das Zertifikat ausgestellt wurde.
Die folgenden Eigenschaften gelten für die Zertifizierungsstelle. Der Kontext muss null sein, um eine dieser Eigenschaften lesen zu können. Der Kontext wird auf null festgelegt, wenn das ICertServerExit-Objekt anfänglich erstellt wird. Sie kann auch auf null festgelegt werden, indem Sie die SetContext-Methode aufrufen.
Wert | Bedeutung |
---|---|
|
Typ der Zertifizierungsstelle. Dies kann einer der folgenden Werte sein (definiert in Certsrv.h): ENUM_ENTERPRISE_ROOTCA ENUM_ENTERPRISE_SUBCA ENUM_STANDALONE_ROOTCA ENUM_STANDALONE_SUBCA |
|
Anzahl der Zertifizierungsstellenzertifikate. Dieser Wert ist 1 und die Anzahl der Wiederholungen, mit denen die Zertifizierungsstelle verlängert wurde. Informationen zur Verlängerung finden Sie unter Erneuerung der Zertifizierungsstelle. |
|
Zertifizierungsstellenzertifikatstatus. Mögliche Werte:
|
|
Suffix für das Zertifizierungsstellenzertifikat. Das Suffix ist eine leere Zeichenfolge für Zertifizierungsstellenzertifikate mit einem Index von null. Andernfalls wird das Suffix (in Form von "(nn)", wobei nn der Zertifikatindex ist) auf alle URLs angewendet, die auf in Dateien oder Verzeichnisdienstobjekten gespeicherte Zertifizierungsstellenzertifikate verweisen. Bei Nicht-LDAP-URLs wird das Suffix in der Regel vor dem Text ".crt" angezeigt. Bei LDAP-URLs wird das Suffix in der Regel an den ersten "CN=" im vollständigen distinguished-Namen angefügt.
Dieser Eigenschaftsname kann mit ".#" angefügt werden, wobei # einen Zertifizierungsstellenzertifikatindex darstellt (oder im Fall der CRLSuffix-Eigenschaft einen CRL-Index). Informationen zu Zertifikats- und Zertifikatsperrlistenindizes finden Sie unter Erneuerung der Zertifizierungsstelle. |
|
Zertifikatsperrliste (Certificate Revocation List , CRL)-Index. Durch das Anfügen eines Zertifikatindexes an diesen Eigenschaftsnamen können Sie den CRL-Index abrufen. Der CRL-Index stimmt nicht unbedingt mit dem Zertifikatindex überein. Weitere Informationen finden Sie unter Zertifizierung.
Dieser Eigenschaftsname kann mit ".#" angefügt werden, wobei # einen Zertifizierungsstellenzertifikatindex darstellt (oder im Fall der CRLSuffix-Eigenschaft einen CRL-Index). Informationen zu Zertifikats- und Zertifikatsperrlistenindizes finden Sie unter Erneuerung der Zertifizierungsstelle. |
|
CRL-Status. Mögliche Werte:
|
|
Suffix für die Zertifizierungsstellen-CRL. Das Suffix ist eine leere Zeichenfolge für ZERTIFIKATsperrlisten mit einem Index von null. Andernfalls wird das Suffix (in Form von "(nn)", wobei nn der CRL-Index ist) auf alle URLs angewendet, die auf in Dateien oder Verzeichnisdienstobjekten gespeicherte ZERTIFIKATlisten verweisen. Bei Nicht-LDAP-URLs wird das Suffix in der Regel vor dem Text ".crl" angezeigt. Bei LDAP-URLs wird das Suffix in der Regel an den ersten "CN=" im vollständigen distinguished-Namen angefügt.
Dieser Eigenschaftsname kann mit ".#" angefügt werden, wobei # einen Zertifizierungsstellenzertifikatindex darstellt (oder, im Fall der CRLSuffix-Eigenschaft, einen CRL-Index). Informationen zu Zertifikat- und Zertifikatsperrlistenindizes finden Sie unter Erneuerung der Zertifizierungsstelle. |
|
Gibt an, ob die Zertifizierungsstelle einen Verzeichnisdienst verwendet. Dies kann einer der folgenden Werte sein:
|
|
DNS-Name des Servers, auf dem die Zertifizierungsstelle gehostet wird. |
|
Registrierungsspeicherort, der für die Verwendung durch das Modul verfügbar ist. |
|
Zertifizierungsstellenzertifikate.
Dieser Eigenschaftsname kann mit ".#" angefügt werden, wobei # einen Zertifizierungsstellenzertifikatindex darstellt (oder, im Fall der CRLSuffix-Eigenschaft, einen CRL-Index). Informationen zu Zertifikat- und Zertifikatsperrlistenindizes finden Sie unter Erneuerung der Zertifizierungsstelle. |
|
Zertifikatsperrliste (Certificate Revocation List, CRL) der Zertifizierungsstelle.
Dieser Eigenschaftsname kann mit ".#" angefügt werden, wobei # einen Zertifizierungsstellenzertifikatindex darstellt (oder, im Fall der CRLSuffix-Eigenschaft, einen CRL-Index). Informationen zu Zertifikat- und Zertifikatsperrlistenindizes finden Sie unter Erneuerung der Zertifizierungsstelle. |
|
Gibt an, ob der Anfordernde autorisiert ist, das Zertifikat anzufordern. Dies kann einer der folgenden Werte sein:
|
|
Sanitisierter Name für die Zertifizierungsstelle. Informationen zu sanitisierten Zertifizierungsstellennamen finden Sie unter ICertConfig::GetConfig. |
|
Bereinigter Name für die Zertifizierungsstelle, gekürzt und enthält einen Hashwert , um die Eindeutigkeit sicherzustellen. |
[in] PropertyType
Gibt den Eigenschaftentyp an. Der Typ kann einer der folgenden Sein.
Wert | Bedeutung |
---|---|
|
Signierte lange Daten |
|
Datum/Uhrzeit |
|
Binärdaten |
|
Unicode-Zeichenfolgendaten |
[out] pvarPropertyValue
Ein Zeiger auf einen VARIANT-Wert , der den Eigenschaftswert enthält. Der zurückgegebene Wert ist als BSTR codiert. Verwenden Sie die SysStringByteLen-Funktion , um die Länge des BSTR abzurufen. Das binäre BLOB wird als Distinguished Encoding Rules codiertes X.509-Zertifikat gespeichert.
Rückgabewert
C++
Wenn die Methode erfolgreich ist, gibt die Methode S_OK zurück.Wenn die Methode fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.
VB
Der Rückgabewert ist der angeforderte Eigenschaftswert.Hinweise
Sie müssen ICertServerExit::SetContext aufrufen, bevor Sie diese Methode verwenden.
Beispiele
BSTR bstrPropName = NULL;
VARIANT varProp;
VariantInit(&varProp);
// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");
// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
PROPTYPE_LONG,
&varProp );
if (FAILED(hr))
{
printf("Failed GetCertificateProperty [%x]\n", hr);
goto error;
}
else
{
// Successfully retrieved property; use varProp as needed.
// ...
}
// Done processing.
if (NULL != bstrPropName)
SysFreeString(bstrPropName);
VariantClear(&varProp);
Anforderungen
Unterstützte Mindestversion (Client) | Nicht unterstützt |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | certif.h (include Certsrv.h) |
Bibliothek | Certidl.lib |
DLL | Certcli.dll |