Metodo IEnumCERTVIEWEXTENSION::GetFlags (certview.h)
Il metodo GetFlags recupera i flag di criteri e di origine dell'estensione corrente nella sequenza di enumerazione di estensione.
I flag di criteri e di origine vengono restituiti in una variabile e vengono forniti maschera di bit per recuperare i singoli valori.
Sintassi
HRESULT GetFlags(
[out] LONG *pFlags
);
Parametri
[out] pFlags
Puntatore a un tipo LONG che contiene i flag di criteri e di origine dell'estensione. Questo metodo ha esito negativo se il parametro pFlags è impostato su NULL.
Valore restituito
C++
Se il metodo ha esito positivo, il metodo restituisce S_OK.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 rappresenta i valori dei criteri e dell'origine dell'estensione.Commenti
Questo metodo viene usato per recuperare i criteri e i flag di origine dell'estensione a cui fa attualmente riferimento la sequenza di enumerazione di estensione.
I flag dei criteri forniscono informazioni sull'estensione del certificato e possono essere impostati dal modulo criteri.
I flag di origine indicano il modulo che imposta l'estensione del certificato e 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. |
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. |
Se la sequenza di enumerazione di estensione non fa riferimento a un'estensione valida, GetFlags avrà esito negativo. Usare uno dei metodi seguenti per spostarsi nell'enumerazione :
- IEnumCERTVIEWEXTENSION::Reset: passa all'estensione successiva nella sequenza di enumerazione.
- IEnumCERTVIEWEXTENSION::Next: passa all'estensione successiva nella sequenza di enumerazione.
- IEnumCERTVIEWEXTENSION::Skip: ignora un numero specificato di estensioni.
Esempio
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;
}
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Nessuno supportato |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | certview.h (include Certsrv.h) |
Libreria | Certidl.lib |
DLL | Certadm.dll |
Vedi anche
IEnumCERTVIEWEXTENSION::GetName