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 GetCertificateExtensionFlags-Methode ruft die Flags ab, die der Erweiterung zugeordnet sind, die durch den letzten Aufruf von GetCertificateExtension abgerufen wurden.
Syntax
HRESULT GetCertificateExtensionFlags(
[out] LONG *pExtFlags
);
Parameter
[out] pExtFlags
Ein Zeiger auf eine LONG-Variable , die die Erweiterungsflags enthält.
Rückgabewert
C++
Wenn die Methode erfolgreich ist, gibt die Methode S_OK zurück, und der pExtFlags-Parameter enthält die Flags der Erweiterung, die durch den letzten Aufruf von GetCertificateExtension abgerufen wurden.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 die Flags der Erweiterung, die durch den letzten Aufruf von GetCertificateExtension abgerufen wurden.Hinweise
Die Methoden SetContext und GetCertificateExtension müssen vor GetCertificateExtensionFlags aufgerufen werden. Die SetContext-Methode gibt an, welche Anforderung als aktueller Kontext verwendet wird, und die GetCertificateExtension-Methode ruft die Erweiterungen für die Anforderung ab.
Erweiterungen können Richtlinien- und Ursprungsflags enthalten. Richtlinienflags enthalten Informationen zur Zertifikaterweiterung. Richtlinienflags können vom Richtlinienmodul festgelegt werden. Ursprungsflags geben das Modul an, das die Zertifikaterweiterung festgelegt hat. Ursprungsflags 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. Weitere Informationen finden Sie unter ICertAdmin::SetCertificateExtension. |
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. |
Es ist sicher, die hohen 8 Bit EXTENSION_POLICY_MASK für benutzerdefinierte Daten zu verwenden. Diese Bits werden dauerhaft in der Datenbank gespeichert, aber nicht in die Zertifikaterweiterungen geschrieben.
Beispiele
HRESULT hr;
LONG ExtFlags;
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->GetCertificateExtensionFlags( &ExtFlags);
// More than one policy flag might be set.
LONG ExtPolicyFlags = ExtFlags & EXTENSION_POLICY_MASK;
if (ExtPolicyFlags & EXTENSION_CRITICAL_FLAG)
{
// Do something.
}
if (ExtPolicyFlags & EXTENSION_DISABLE_FLAG)
{
// Do something.
}
// only one origin flag can be set
switch (ExtFlags & EXTENSION_ORIGIN_MASK)
{
case EXTENSION_ORIGIN_REQUEST:
// Extension was set in certificate request.
break;
case EXTENSION_ORIGIN_POLICY:
// Extension was set by policy module.
break;
case EXTENSION_ORIGIN_ADMIN:
// Extension was set by administrator.
break;
case EXTENSION_ORIGIN_SERVER:
// Extension was set by server engine.
break;
default:
break;
}
Anforderungen
Anforderung | Wert |
---|---|
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
ICertAdmin::SetCertificateExtension