Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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