Metodo ICertServerPolicy::GetCertificateExtensionFlags (certif.h)
Il metodo GetCertificateExtensionFlags recupera i flag associati all'estensione acquisita dalla chiamata più recente a GetCertificateExtension.
Sintassi
HRESULT GetCertificateExtensionFlags(
[out] LONG *pExtFlags
);
Parametri
[out] pExtFlags
Puntatore a una variabile LONG contenente i flag di estensione.
Valore restituito
C++
Se il metodo ha esito positivo, il metodo restituisce S_OK e il parametro pExtFlags contiene i flag dell'estensione acquisita dalla chiamata più recente a 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 GetCertificateExtension.Commenti
I metodi SetContext e GetCertificateExtension devono essere chiamati prima di GetCertificateExtensionFlags. Il metodo SetContext specifica la richiesta utilizzata come contesto corrente e il metodo GetCertificateExtension recupera le estensioni per la richiesta.
Le estensioni possono contenere flag di criteri e di origine. I flag dei criteri forniscono informazioni sull'estensione del certificato. I flag dei criteri possono essere impostati dal modulo criteri. I flag di origine indicano 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.
Esempio
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;
}
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
ICertAdmin::SetCertificateExtension