Metodo ICertServerPolicy::GetCertificateExtension (certif.h)

Il metodo GetCertificateExtension recupera un'estensione del certificato specifica.

Sintassi

HRESULT GetCertificateExtension(
  [in]  const BSTR strExtensionName,
  [in]  LONG       Type,
  [out] VARIANT    *pvarValue
);

Parametri

[in] strExtensionName

Stringa contenente il nome dell'estensione.

[in] Type

Specifica il tipo dell'estensione. Il tipo può essere uno dei valori seguenti.

Valore Significato
PROPTYPE_LONG
Dati lunghi firmati
PROPTYPE_DATE
Data/ora
PROPTYPE_BINARY
Il valore di estensione viene recuperato così come è e viene codificato asN.1, se necessario.
PROPTYPE_STRING
Il valore dell'estensione è con codifica ASN.1 come stringa IA5.

[out] pvarValue

Puntatore a un valore VARIANT che riceve il valore di estensione richiesto.

Valore restituito

C++

Se il metodo ha esito positivo, il metodo restituisce S_OK e il parametro pvarValue contiene il valore di estensione.

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 è il valore di estensione richiesto.

Commenti

Il metodo SetContext deve essere chiamato prima di chiamare questo metodo. La chiamata a SetContext specifica la richiesta utilizzata come contesto corrente.

Le estensioni del certificato sono distinte dalle proprietà del certificato. Le proprietà sono dati generici associati alla richiesta. Alcune di queste proprietà vengono codificate nel certificato ,ad esempio BeginDate, mentre altre vengono usate solo per contrassegnare le richieste nella coda e nel log. Le estensioni non disabilitate vengono codificate nel certificato. Le estensioni vengono sempre contrassegnate con un identificatore di oggetto e hanno sempre un flag critico/non critico.

Esempio

VARIANT    varExt;
HRESULT    hr;

VariantInit(&varExt);
// Get the Extension value.
// bstrExtName is BSTR assigned by EnumerateExtensions.
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->GetCertificateExtension(bstrExtName,
                                                PROPTYPE_BINARY,
                                                &varExt);

if (FAILED(hr))
{
    printf("Failed GetCertificateExtension [%x]\n", hr);
    goto error;
}
// Successful call; use the value in varExt as needed.
// ...

// When done, clear the Variant
VariantClear(&varExt);

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

ICertServerPolicy

ICertServerPolicy::GetCertificateExtensionFlags

ICertServerPolicy::SetContext