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 |
---|---|
|
Data di validità inizio certificato |
|
Data di scadenza del certificato |
|
Identificatore dell'oggetto dell'algoritmo della chiave del soggetto (OID) |
|
Byte di certificato non elaborato |
|
Chiave dell'oggetto |
|
Parametri dell'algoritmo della chiave del soggetto |
|
ID richiesta interno |
|
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 |
---|---|
|
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 |
|
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. |
|
Stato certificato CA. I valori possibili sono i seguenti:
|
|
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. |
|
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. |
|
Stato CRL. I valori possibili sono i seguenti:
|
|
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. |
|
Indica se la CA usa un servizio directory. Questo può essere uno dei valori seguenti:
|
|
Nome DNS del server che ospita la CA. |
|
Posizione del Registro di sistema disponibile per l'uso dal modulo. |
|
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. |
|
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. |
|
Indica se il richiedente è autorizzato a richiedere il certificato. Questo può essere uno dei valori seguenti:
|
|
Nome sanificato per la CA. Per informazioni sui nomi ca sanificati, vedere ICertConfig::GetConfig. |
|
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 |
---|---|
|
Dati lunghi firmati |
|
Data/ora |
|
Dati binari |
|
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 |