Metodo ICertServerExit::GetCertificateExtensionFlags (certif.h)
Il metodo GetCertificateExtensionFlags ottiene i flag dall'estensione acquisita dalla chiamata più recente a ICertServerExit::GetCertificateExtension.
Sintassi
HRESULT GetCertificateExtensionFlags(
[out] LONG *pExtFlags
);
Parametri
[out] pExtFlags
Puntatore a una variabile LONG che conterrà i flag di estensione.
Valore restituito
C++
Se il metodo ha esito positivo, il metodo restituisce S_OK e *pExtFlags viene impostato sulla variabile che contiene i flag dell'estensione acquisita dalla chiamata più recente a ICertServerExit::GetCertificateExtension.Se il metodo ha esito negativo, restituisce un valore HRESULT che indica l'errore. Per un elenco dei codici di errore comuni, vedere Valori HRESULT comuni.
VB
Il valore restituito è costituito dai flag dell'estensione acquisita dalla chiamata più recente a ICertServerExit::GetCertificateExtension.Commenti
Esistono due tipi di flag usati nelle estensioni: flag di criteri e flag di origine.
Tipo di flag | Spiegazione |
---|---|
Criteri | Fornisce informazioni sull'estensione del certificato. I flag dei criteri possono essere impostati dal modulo criteri. |
Origine | Indica il modulo che imposta l'estensione del certificato. I flag di origine vengono impostati solo dal motore del server. |
Uno o più flag di criteri possono essere restituiti da un'estensione. Di seguito sono riportati flag di criteri predefiniti.
Valore del flag dei criteri | Spiegazione |
---|---|
EXTENSION_CRITICAL_FLAG | Si tratta di un'estensione critica. |
EXTENSION_DISABLE_FLAG | L'estensione non verrà usata. |
È anche possibile restituire uno dei flag di origine seguenti.
Valore del flag di origine | Spiegazione |
---|---|
EXTENSION_ORIGIN_REQUEST | L'estensione è stata estratta da una matrice di estensioni archiviate nel szOID_CERT_EXTENSIONS (1.3.6.1.4.1.311.2.1.14) o szOID_RSA_certExtensions (1.2.840.113549.1.9.14) di una richiesta PKCS #10. |
EXTENSION_ORIGIN_POLICY | Il modulo criteri imposta l'estensione. |
EXTENSION_ORIGIN_ADMIN | L'amministratore imposta l'estensione. Per altre informazioni, vedere ICertAdmin::SetCertificateExtension. |
EXTENSION_ORIGIN_SERVER | Il motore del server imposta l'estensione. |
EXTENSION_ORIGIN_RENEWALCERT | L'estensione è stata estratta dal certificato archiviato nell'attributo szOID_RENEWAL_CERTIFICATE (1.3.6.1.4.1.311.13.1) di una richiesta di rinnovo PKCS #10. |
EXTENSION_ORIGIN_IMPORTEDCERT | L'estensione è stata estratta da un certificato importato (il certificato è stato passato a ICertAdmin::ImportCertificate). |
EXTENSION_ORIGIN_PKCS7 | L'estensione è stata estratta da una matrice di estensioni archiviate nella szOID_CERT_EXTENSIONS (1.3.6.1.4.1.311.2.1.14) o szOID_RSA_certExtensions (1.2.840.113549.1.9.14) di una richiesta PKCS #7. |
Le maschere predefinite vengono fornite per facilitare l'uso per determinare quali flag sono impostati nel valore restituito. Vengono fornite le maschere seguenti.
Valore della maschera | Spiegazione |
---|---|
EXTENSION_POLICY_MASK | Questo valore (0x0000FFFF) viene usato per esaminare i flag dei criteri. |
EXTENSION_ORIGIN_MASK | Questo valore (0x000F0000) viene usato per esaminare i flag di origine. |
È sicuro usare i 8 bit elevati di EXTENSION_POLICY_MASK per i dati personalizzati. Questi bit verranno salvati in modo permanente nel database, ma non verranno scritti nelle estensioni del certificato.
È necessario chiamare ICertServerExit::SetContext prima di usare questo metodo.
Esempio
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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Nessuno supportato |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | certif.h (include Certsrv.h) |
Libreria | Certidl.lib |
DLL | Certcli.dll |
Vedi anche
CCertServerExit
ICertAdmin::SetCertificateExtension