Condividi tramite


Metodo ICertServerExit::GetCertificateProperty (certif.h)

Il metodo GetCertificateProperty restituisce una proprietà denominata da un certificato.

Sintassi

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

Parametri

[in] strPropertyName

Specifica la proprietà denominata da recuperare. Esiste un set di scorte di proprietà del certificato, detto proprietà del nome, che sono sempre valide e che possono essere recuperate chiamando questo metodo. Per informazioni su queste proprietà, vedere Proprietà dei nomi. Altre proprietà che possono essere recuperate includono le proprietà del certificato.

Le proprietà seguenti sono univoche per i certificati e possono essere lette da GetCertificateProperty.

Valore Significato
NotBefore
Data/ora
Data di validità inizio certificato
NotAfter
Data/ora
Data di scadenza del certificato
PublicKeyAlgorithm
string
Identificatore dell'oggetto dell'algoritmo della chiave del soggetto (OID)
RawCertificate
Binary
Byte di certificato non elaborato
RawPublicKey
Binary
Chiave dell'oggetto
RawPublicKeyAlgorithmParameters
Binary
Parametri dell'algoritmo della chiave del soggetto
RequestID
Con segno lungo
ID richiesta interno
Serialnumber
string
Numero di serie del certificato
 

Le proprietà DistinguishedName, RawName e SerialNumber del certificato sono accessibili da GetCertificateProperty solo dopo che il modulo criteri ha completato l'elaborazione della richiesta e il certificato viene emesso.

Le proprietà seguenti si applicano all'autorità di certificazione. Il contesto deve essere zero per leggere una di queste proprietà. Il contesto viene impostato su zero quando viene creato inizialmente l'oggetto ICertServerExit . Può anche essere impostato su zero richiamando il metodo SetContext .

Valore Significato
CAType
long
Tipo di autorità di certificazione. Può trattarsi di uno dei valori seguenti (definiti in Certsrv.h):

ENUM_ENTERPRISE_ROOTCA

ENUM_ENTERPRISE_SUBCA

ENUM_STANDALONE_ROOTCA

ENUM_STANDALONE_SUBCA

CertCount
long
Numero di certificati DELLA CA. Questo valore sarà uno più il numero di volte in cui la CA è stata rinnovata. Per informazioni sul rinnovo, vedere Rinnovo dell'autorità di certificazione.
CertState
long
Stato certificato CA. I valori possibili sono i seguenti:
CA_DISP_ERROR: il certificato della CA non è mai stato emesso.
CA_DISP_REVOKED: il certificato della CA è stato revocato.
CA_DISP_VALID: il certificato della CA è ancora valido.
CA_DISP_INVALID: il certificato della CA è scaduto.
Questo nome di proprietà può essere aggiunto con '.#', dove # rappresenta un indice certificato CA (o, nel caso della proprietà CRLSuffix, un indice CRL). Per informazioni sui certificati e sugli indici CRL, vedere Rinnovo dell'autorità di certificazione.
CertSuffix
string
Suffisso per il certificato DELLA CA. Il suffisso è una stringa vuota per i certificati CA con un indice pari a zero; in caso contrario, il suffisso (sotto forma di "(nn)", dove nn è l'indice del certificato) viene applicato a tutti gli URL che puntano ai certificati CA archiviati in file o oggetti del servizio directory. Per gli URL non LDAP , il suffisso viene in genere visualizzato prima del testo ".crt". Per gli URL LDAP, il suffisso viene in genere aggiunto al primo "CN=" nel nome distinto completo.

Questo nome di proprietà può essere aggiunto con '.#', dove # rappresenta un indice certificato CA (o, nel caso della proprietà CRLSuffix, un indice CRL). Per informazioni sui certificati e sugli indici CRL, vedere Rinnovo dell'autorità di certificazione.

CRLIndex
long
Indice dell'elenco di revoche di certificati (CRL). L'aggiunta di un indice di certificato a questo nome di proprietà consente di recuperare l'indice CRL. L'indice CRL non corrisponde necessariamente all'indice del certificato. Per altre informazioni, vedere Certificazione.

Questo nome di proprietà può essere aggiunto con '.#', dove # rappresenta un indice certificato CA (o, nel caso della proprietà CRLSuffix, un indice CRL). Per informazioni sui certificati e sugli indici CRL, vedere Rinnovo dell'autorità di certificazione.

CRLState
long
Stato CRL. I valori possibili sono i seguenti:
CA_DISP_ERROR: il CRL è gestito da un altro certificato della CA.
CA_DISP_REVOKED: tutti i certificati CA non scaduti che usano il CRL del certificato CA sono stati revocati.
CA_DISP_VALID: il certificato della CA viene ancora usato per pubblicare CRL in base alle esigenze.
CA_DISP_INVALID: tutti i certificati CA che usano il CRL del certificato della CA sono scaduti.
Questo nome di proprietà può essere aggiunto con '.#', dove # rappresenta un indice certificato CA (o, nel caso della proprietà CRLSuffix, un indice CRL). Per informazioni sui certificati e sugli indici CRL, vedere Rinnovo dell'autorità di certificazione.
CRLSuffix
string
Suffisso per il CRL ca. Il suffisso è una stringa vuota per i CRL con un indice pari a zero; in caso contrario, il suffisso (sotto forma di "(nn)", dove nn è l'indice CRL) viene applicato a tutti gli URL che puntano a CRL archiviati in file o oggetti del servizio directory. Per gli URL non LDAP, il suffisso viene in genere visualizzato prima del testo ".crl". Per gli URL LDAP, il suffisso viene in genere aggiunto al primo nome "CN=" nel nome distinto completo.

Questo nome di proprietà può essere aggiunto con '.#', dove # rappresenta un indice di certificato CA (o, nel caso della proprietà CRLSuffix, un indice CRL). Per informazioni sui certificati e sugli indici CRL, vedere Rinnovo autorità di certificazione.

fUseDS
long
Indica se la CA usa un servizio directory. Questo può essere uno dei valori seguenti:
  • 0=no
  • 1=sì
MachineDNSName
string
Nome DNS del server che ospita la CA.
ModuleRegistryLocation
string
Posizione del Registro di sistema disponibile per l'uso dal modulo.
RawCACertificate
Binary
Certificato CA.

Questo nome di proprietà può essere aggiunto con '.#', dove # rappresenta un indice di certificato CA (o, nel caso della proprietà CRLSuffix, un indice CRL). Per informazioni sui certificati e sugli indici CRL, vedere Rinnovo autorità di certificazione.

RawCRL
Binary
Elenco di revoche di certificati della CA (CRL).

Questo nome di proprietà può essere aggiunto con '.#', dove # rappresenta un indice di certificato CA (o, nel caso della proprietà CRLSuffix, un indice CRL). Per informazioni sui certificati e sugli indici CRL, vedere Rinnovo autorità di certificazione.

RequesterCAAccess
long
Indica se il richiedente è autorizzato a richiedere il certificato. Questo può essere uno dei valori seguenti:
  • 0=no
  • 1=sì
Lo snap-in MMC dell'autorità di certificazione può essere usato per controllare le autorizzazioni di richiesta del certificato .
SanificataCAName
string
Nome sanificato per la CA. Per informazioni sui nomi ca sanificati, vedere ICertConfig::GetConfig.
SanitizedShortName
string
Nome sanificato per la CA, abbreviato e contenente un valore hash per garantire l'univocità.

[in] PropertyType

Specifica il tipo di proprietà. Il tipo può essere uno dei seguenti.

Valore Significato
PROPTYPE_LONG
Dati lunghi firmati
PROPTYPE_DATE
Data/ora
PROPTYPE_BINARY
Dati binari
PROPTYPE_STRING
Dati stringa Unicode

[out] pvarPropertyValue

Puntatore a un VALORE VARIANT che conterrà il valore della proprietà. Il valore restituito viene codificato come BSTR. Usare la funzione SysStringByteLen per recuperare la lunghezza del BSTR. Il BLOB binario viene archiviato come certificato X.509 codificato Distinguished Encoding Rules.

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 di codici di errore comuni, vedere Valori HRESULT comuni.

VB

Il valore restituito è il valore della proprietà richiesto.

Commenti

È necessario chiamare ICertServerExit::SetContext prima di usare questo metodo.

Esempio

BSTR    bstrPropName = NULL;
VARIANT varProp;

VariantInit(&varProp);

// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");

// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
                                             PROPTYPE_LONG,
                                             &varProp );
if (FAILED(hr))
{
    printf("Failed GetCertificateProperty [%x]\n", hr);
    goto error;
}
else
{
    // Successfully retrieved property; use varProp as needed.
    // ...
}

// Done processing.
if (NULL != bstrPropName)
    SysFreeString(bstrPropName);
VariantClear(&varProp);

Requisiti

   
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

ICertServerExit

ICertServerExit::SetContext

Proprietà nome