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

ICertServerPolicy

ICertServerPolicy::GetCertificateExtension

ICertServerPolicy::SetContext

IEnumCERTVIEWEXTENSION::GetFlags