Condividi tramite


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 :

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

IEnumCERTVIEWEXTENSION::GetName

IEnumCERTVIEWEXTENSION::GetValue

IEnumCERTVIEWEXTENSION::Next