Share via


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
NotBefore
Date/Time
Gültigkeitsdatum des Zertifikatanfangs
NotAfter
Date/Time
Ablaufdatum des Zertifikats
PublicKeyAlgorithm
String
Objektbezeichner des Antragstellerschlüsselalgorithmus (Subject Key Algorithm Object Identifier , OID)
RawCertificate
Binary
Unformatierte Zertifikatbytes
RawPublicKey
Binary
Betreffschlüssel
RawPublicKeyAlgorithmParameters
Binary
Parameter des Antragstellerschlüsselalgorithmus
RequestID
Signierter Long-Wert
Interne Anforderungs-ID
SerialNumber
String
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
CAType
Long
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

CertCount
Long
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.
CertState
Long
Zertifizierungsstellenzertifikatstatus. Mögliche Werte:
CA_DISP_ERROR: Das Zertifizierungsstellenzertifikat wurde nie ausgestellt.
CA_DISP_REVOKED: Das Zertifizierungsstellenzertifikat wurde widerrufen.
CA_DISP_VALID: Das Zertifizierungsstellenzertifikat ist weiterhin gültig.
CA_DISP_INVALID: Das Zertifizierungsstellenzertifikat ist abgelaufen.
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.
CertSuffix
String
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.

CRLIndex
Long
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.

CRLState
Long
CRL-Status. Mögliche Werte:
CA_DISP_ERROR: Die Zertifikatsperrliste wird von einem anderen Zertifizierungsstellenzertifikat verwaltet.
CA_DISP_REVOKED: Alle nicht abgelaufenen Zertifizierungsstellenzertifikate, die die Zertifikatsperrliste dieses Zertifizierungsstellenzertifikats verwenden, wurden widerrufen.
CA_DISP_VALID: Das Zertifizierungsstellenzertifikat wird weiterhin verwendet, um nach Bedarf Zertifikatsperrlisten zu veröffentlichen.
CA_DISP_INVALID: Alle Zertifizierungsstellenzertifikate, die die Zertifikatsperrliste dieses Zertifizierungsstellenzertifikats verwenden, sind abgelaufen.
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.
CRLSuffix
String
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.

fUseDS
Long
Gibt an, ob die Zertifizierungsstelle einen Verzeichnisdienst verwendet. Dies kann einer der folgenden Werte sein:
  • 0=nein
  • 1=ja
MachineDNSName
String
DNS-Name des Servers, auf dem die Zertifizierungsstelle gehostet wird.
ModuleRegistryLocation
String
Registrierungsspeicherort, der für die Verwendung durch das Modul verfügbar ist.
RawCACertificate
Binary
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.

RawCRL
Binary
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.

RequesterCAAccess
Long
Gibt an, ob der Anfordernde autorisiert ist, das Zertifikat anzufordern. Dies kann einer der folgenden Werte sein:
  • 0=nein
  • 1=ja
(Das MMC-Snap-In der Zertifizierungsstelle kann verwendet werden, um Zertifikatanforderungsberechtigungen zu steuern.)
SanitizedCAName
String
Sanitisierter Name für die Zertifizierungsstelle. Informationen zu sanitisierten Zertifizierungsstellennamen finden Sie unter ICertConfig::GetConfig.
SanitizedShortName
String
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
PROPTYPE_LONG
Signierte lange Daten
PROPTYPE_DATE
Datum/Uhrzeit
PROPTYPE_BINARY
Binärdaten
PROPTYPE_STRING
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

Weitere Informationen

ICertServerExit

ICertServerExit::SetContext

Namenseigenschaften