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 der Erweiterung ab, die durch den letzten Aufruf von ICertServerExit::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 *pExtFlags ist auf die Variable festgelegt, die die Flags der Erweiterung enthält, die durch den letzten Aufruf von ICertServerExit::GetCertificateExtension abgerufen wurde.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 ICertServerExit::GetCertificateExtension abgerufen wurden.Hinweise
Es gibt zwei Arten von Flags, die in Erweiterungen verwendet werden: Richtlinienflags und Ursprungsflags.
Flagtyp | Erklärung |
---|---|
Policy | Stellt Informationen zur Zertifikaterweiterung bereit. Richtlinienflags können vom Richtlinienmodul festgelegt werden. |
Origin | Gibt 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.
Sie müssen ICertServerExit::SetContext aufrufen, bevor Sie diese Methode verwenden.
Beispiele
HRESULT hr;
LONG ExtFlags;
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateExtensionFlags(&ExtFlags);
// More than one policy flag may be set.
LONG ExtPolicyFlags = ExtFlags & EXTENSION_POLICY_MASK;
if (ExtPolicyFlags & EXTENSION_CRITICAL_FLAG)
{
// Perform the desired operation.
}
if (ExtPolicyFlags & EXTENSION_DISABLE_FLAG)
{
// Perform the desired operation.
}
// 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;
case EXTENSION_ORIGIN_RENEWALCERT:
// Extension was set by renewal certificate.
break;
case EXTENSION_ORIGIN_IMPORTEDCERT:
// Extension was set by imported certificate.
break;
case EXTENSION_ORIGIN_PKCS7:
// Extension was set by PKCS #7.
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
CCertServerExit
ICertAdmin::SetCertificateExtension