IEnumCERTVIEWEXTENSION::GetFlags-Methode (certview.h)
Die GetFlags-Methode ruft die Richtlinien- und Ursprungsflags der aktuellen Erweiterung in der Extension-Enumeration-Sequenz ab.
Sowohl die Richtlinien- als auch die Ursprungsflags werden in einer Variablen zurückgegeben, und Bitmasken werden bereitgestellt, um die einzelnen Werte abzurufen.
Syntax
HRESULT GetFlags(
[out] LONG *pFlags
);
Parameter
[out] pFlags
Ein Zeiger auf einen LONG-Typ , der die Richtlinien- und Ursprungsflags der Erweiterung enthält. Diese Methode schlägt fehl, wenn der pFlags-Parameter auf NULL festgelegt ist.
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 stellt die Richtlinien- und Ursprungswerte der Erweiterung dar.Hinweise
Diese Methode wird verwendet, um die Richtlinien- und Ursprungsflags der Erweiterung abzurufen, auf die derzeit von der Extension-Enumerationssequenz verwiesen wird.
Richtlinienflags enthalten Informationen zur Zertifikaterweiterung und können vom Richtlinienmodul festgelegt werden.
Ursprungsflags geben das Modul an, das die Zertifikaterweiterung festgelegt hat, und werden nur von der Server-Engine festgelegt.
Ein oder mehrere Richtlinienflags können von einer Erweiterung zurückgegeben werden. Im Folgenden sind vordefinierte Richtlinienflags aufgeführt.
Richtlinienflagwert | Erklärung |
---|---|
EXTENSION_CRITICAL_FLAG | Dies ist eine wichtige Erweiterung. |
EXTENSION_DISABLE_FLAG | Die Erweiterung wird nicht verwendet. |
Eines der folgenden Ursprungsflags kann auch zurückgegeben werden.
Ursprungsflagwert | Erklärung |
---|---|
EXTENSION_ORIGIN_REQUEST | Die Erweiterung wurde aus einem Array von Erweiterungen extrahiert, die im szOID_CERT_EXTENSIONS-Attribut (1.3.6.1.4.1.311.2.1.14) oder szOID_RSA_certExtensions (1.2.840.113549.1.1.9.14) einer PKCS #10-Anforderung gespeichert sind. |
EXTENSION_ORIGIN_POLICY | Das Richtlinienmodul legt die Erweiterung fest. |
EXTENSION_ORIGIN_ADMIN | Der Administrator hat die Erweiterung festgelegt. |
EXTENSION_ORIGIN_SERVER | Die Server-Engine legt die Erweiterung fest. |
EXTENSION_ORIGIN_RENEWALCERT | Die Erweiterung wurde aus dem Zertifikat extrahiert, das im szOID_RENEWAL_CERTIFICATE-Attribut (1.3.6.1.4.1.311.13.1) einer PKCS #10-Verlängerungsanforderung gespeichert ist. |
EXTENSION_ORIGIN_IMPORTEDCERT | Die Erweiterung wurde aus einem importierten Zertifikat extrahiert (das Zertifikat wurde an ICertAdmin::ImportCertificate übergeben). |
EXTENSION_ORIGIN_PKCS7 | Die Erweiterung wurde aus einem Array von Erweiterungen extrahiert, die im Attribut szOID_CERT_EXTENSIONS (1.3.6.1.4.1.311.2.1.14) oder szOID_RSA_certExtensions (1.2.840.113549.1.9.14) einer PKCS #7-Anforderung gespeichert sind. |
Vordefinierte Masken werden zur einfacheren Verwendung bereitgestellt, um zu bestimmen, welche Flags im Rückgabewert festgelegt werden. Die folgenden Masken werden bereitgestellt.
Maskierungswert | Erklärung |
---|---|
EXTENSION_POLICY_MASK | Dieser Wert (0x0000FFFF) wird verwendet, um Richtlinienflags zu untersuchen. |
EXTENSION_ORIGIN_MASK | Dieser Wert (0x000F0000) wird verwendet, um Ursprungsflags zu untersuchen. |
Wenn die Erweiterungsaufzählungssequenz nicht auf eine gültige Erweiterung verweist, schlägt GetFlags fehl. Verwenden Sie eine der folgenden Methoden, um durch die Enumeration zu navigieren:
- IEnumCERTVIEWEXTENSION::Reset: Wechselt zur nächsten Erweiterung in der Enumerationssequenz.
- IEnumCERTVIEWEXTENSION::Next: Wechselt zur nächsten Erweiterung in der Enumerationssequenz.
- IEnumCERTVIEWEXTENSION::Skip: Überspringt eine angegebene Anzahl von Erweiterungen.
Beispiele
HRESULT hr;
LONG ExtFlags;
// pEnumExt is previously instantiated IEnumCERTVIEWEXTENSION object
hr = pEnumExt->GetFlags(&ExtFlags);
if (S_OK != hr)
printf("Failed GetFlags - %x\n", hr);
else
{
LONG ExtPol, ExtOrig;
ExtPol = ExtFlags & EXTENSION_POLICY_MASK;
if (ExtPol & EXTENSION_CRITICAL_FLAG)
printf("The extension is critical\n");
if (ExtPol & EXTENSION_DISABLE_FLAG )
printf("The extension is disabled\n");
ExtOrig = ExtFlags & EXTENSION_ORIGIN_MASK;
switch (ExtOrig)
{
case EXTENSION_ORIGIN_REQUEST:
printf("Extension originated by PKCS #10 Request\n");
break;
case EXTENSION_ORIGIN_POLICY:
printf("Extension originated by Policy\n");
break;
case EXTENSION_ORIGIN_ADMIN:
printf("Extension originated by Admin\n");
break;
case EXTENSION_ORIGIN_SERVER:
printf("Extension originated by Server\n");
break;
case EXTENSION_ORIGIN_RENEWALCERT:
printf("Extension originated by Renewal Request\n");
break;
case EXTENSION_ORIGIN_IMPORTEDCERT:
printf("Extension originated by an imported "
"certificate\n");
break;
case EXTENSION_ORIGIN_PKCS7:
printf("Extension originated by PKCS #7 Request\n");
break;
default:
printf("Unknown extension origin\n");
break;
}
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Nicht unterstützt |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | certview.h (include Certsrv.h) |
Bibliothek | Certidl.lib |
DLL | Certadm.dll |
Weitere Informationen
IEnumCERTVIEWEXTENSION::GetName