Metodo ICertAdmin2::GetCAProperty (certadm.h)

Il metodo GetCAProperty recupera un valore della proprietà per l'autorità di certificazione (CA). Questo metodo è stato definito per la prima volta nell'interfaccia ICertAdmin .

Sintassi

HRESULT GetCAProperty(
  [in]  const BSTR strConfig,
  [in]  LONG       PropId,
  [in]  LONG       PropIndex,
  [in]  LONG       PropType,
  [in]  LONG       Flags,
  [out] VARIANT    *pvarPropertyValue
);

Parametri

[in] strConfig

Rappresenta una stringa di configurazione valida per la CA nel formato COMPUTERNAME\CANAME, dove COMPUTERNAME è il nome di rete del server servizi certificati e CANAME è il nome comune della CA, come immesso durante l'installazione di Servizi certificati. Per informazioni sul nome della stringa di configurazione, vedere ICertConfig.

ImportanteGetCAProperty non cancella la cache interna quando viene modificata la stringa di configurazione. Quando si modifica la stringa di configurazione per la CA, è necessario creare un'istanza di un nuovo oggetto ICertAdmin e chiamare di nuovo questo metodo con la nuova stringa di configurazione.
 

[in] PropId

Specifica uno degli identificatori di proprietà seguenti.

Valore Significato
CR_PROP_ADVANCEDSERVER
Tipo di dati della proprietà: Long

Specifica se l'autorità di certificazione esegue Advanced Server.

CR_PROP_BASECRL
Tipo di dati della proprietà: Binario, indicizzato

Elenco di revoche di certificati (CRL) completo o di base.

CR_PROP_BASECRLPUBLISHSTATUS
Tipo di dati della proprietà: Long, indicizzato

Stato di pubblicazione CRL di base. Per informazioni dettagliate, vedere Osservazioni.

CR_PROP_CABACKWARDCROSSCERT
Tipo di dati della proprietà: Binario, indicizzato

Certificato incrociato all'indietro. Un certificato incrociato con versioni precedenti è il certificato emesso al rinnovo dalla CA a se stesso firmato con la nuova chiave della CA. Il certificato incrociato con le versioni precedenti ha l'identificatore della chiave dell'autorità del nuovo certificato DELLA CA e l'identificatore della chiave del soggetto del certificato CA precedente.

Si applica solo alle CA radice.

CR_PROP_CABACKWARDCROSSCERTSTATE
Tipo di dati della proprietà: Long, indicizzato

Indica se il certificato incrociato all'indietro è valido. Valido solo per le ca radice.

CR_PROP_CACERTSTATE
Tipo di dati della proprietà: Long

Stato del certificato DELLA CA. I valori possibili sono i seguenti.

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
CR_PROP_CACERTSTATUSCODE
Tipo di dati della proprietà: Long, indicizzato

Stato del certificato DELLA CA, come HRESULT.

CR_PROP_CACERTVERSION
Tipo di dati della proprietà: Long, indicizzato

Versione del certificato DELLA CA, come DWORD. La parola di ordine elevato è l'indice chiave e la parola di ordine basso è l'indice del certificato CA.

CR_PROP_CAFORWARDCROSSCERT
Tipo di dati della proprietà: Binario, indicizzato

Certificato incrociato di inoltro. Un certificato incrociato inoltrato è un certificato emesso al rinnovo dalla CA a se stesso firmato con la chiave precedente della CA. Il certificato incrociato di inoltro ha l'identificatore della chiave dell'autorità del certificato CA precedente e l'identificatore della chiave del nuovo certificato della CA.

Si applica solo alle CA radice.

CR_PROP_CAFORWARDCROSSCERTSTATE
Tipo di dati della proprietà: Long, indicizzato

Indica se il certificato incrociato di inoltro è valido. Valido solo per le ca radice.

CR_PROP_CANAME
Tipo di dati della proprietà: String

Nome della CA.

CR_PROP_CASIGCERT
Tipo di dati della proprietà: Binario, indicizzato

Certificato di firma della CA.

CR_PROP_CASIGCERTCHAIN
Tipo di dati della proprietà: Binario, indicizzato

Catena di certificati di firma DELLA CA.

CR_PROP_CASIGCERTCOUNT
Tipo di dati della proprietà: Long

Numero di certificati di firma per la CA.

CR_PROP_CASIGCERTCRLCHAIN
Tipo di dati della proprietà: Binario, indicizzato

Catena CRL del certificato di firma della CA.

CR_PROP_CATYPE
Tipo di dati della proprietà: Long

Tipo di CA. Può trattarsi di uno dei valori seguenti (definiti in Certsrv.h):

  • ENUM_ENTERPRISE_ROOTCA
  • ENUM_ENTERPRISE_SUBCA
  • ENUM_STANDALONE_ROOTCA
  • ENUM_STANDALONE_SUBCA
CR_PROP_CAXCHGCERT
Tipo di dati della proprietà: Binario, indicizzato

Certificato di scambio CA.

CR_PROP_CAXCHGCERTCHAIN
Tipo di dati della proprietà: Binario, indicizzato

Catena di certificati di scambio CA.

CR_PROP_CAXCHGCERTCOUNT
Tipo di dati della proprietà: Long

Numero di certificati di scambio per la CA.

CR_PROP_CAXCHGCERTCRLCHAIN
Tipo di dati della proprietà: Binario, indicizzato

Catena CRL del certificato di scambio della CA.

CR_PROP_CERTAIAURLS
Tipo di dati della proprietà: String, indicizzato

Specifica gli URL di accesso alle informazioni dell'autorità come tipo di URL richiesto da un client.

Windows Server 2003: Questo flag non è supportato.

CR_PROP_CERTCDPURLS
Tipo di dati della proprietà: String, indicizzato

Specifica gli URL del punto di distribuzione CRL come tipo di URL richiesto da un client.

Windows Server 2003: Questo flag non è supportato.

CR_PROP_CRLSTATE
Tipo di dati della proprietà: Long

Stato del CRL della CA. I valori possibili sono i seguenti.

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
  • CA_DISP_ERROR
CR_PROP_DELTACRL
Tipo di dati della proprietà: Binario, indicizzato

CRL delta della CA.

CR_PROP_DELTACRLPUBLISHSTATUS
Tipo di dati della proprietà: Long, indicizzato

Stato di pubblicazione CRL delta. Per informazioni dettagliate, vedere Osservazioni.

CR_PROP_DNSNAME
Tipo di dati della proprietà: String

Nome DNS della CA.

CR_PROP_EXITCOUNT
Tipo di dati della proprietà: Long

Numero di moduli di uscita in uso dalla CA.

CR_PROP_EXITDESCRIPTION
Tipo di dati della proprietà: String

Descrizione per il modulo di uscita.

CR_PROP_FILEVERSION
Tipo di dati della proprietà: String

Versione del file di Servizi certificati.

CR_PROP_KRACERT
Tipo di dati della proprietà: Binario, indicizzato

Certificato dell'agente di ripristino delle chiavi (KRA) della CA.

CR_PROP_KRACERTCOUNT
Tipo di dati della proprietà: Long

Numero di certificati KRA per la CA.

CR_PROP_KRACERTSTATE
Tipo di dati della proprietà: Long, indicizzato

Stato del certificato KRA. Il valore restituito è uno dei seguenti:

  • KRA_DISP_EXPIRED
  • KRA_DISP_NOTFOUND
  • KRA_DISP_REVOKED
  • KRA_DISP_VALID
  • KRA_DISP_UNTRUSTED
  • KRA_DISP_NOTLOADED
  • KRA_DISP_INVALID
CR_PROP_KRACERTUSEDCOUNT
Tipo di dati della proprietà: Long

Numero di certificati KRA usati dalla CA.

CR_PROP_PARENTCA
Tipo di dati della proprietà: String

Nome della CA padre della CA.

CR_PROP_POLICYDESCRIPTION
Tipo di dati della proprietà: String

Descrizione del modulo criteri.

CR_PROP_PRODUCTVERSION
Tipo di dati della proprietà: String

Versione del prodotto in cui è stato inviato il file.

CR_PROP_ROLESEPARATIONENABLED
Tipo di dati della proprietà: Long

Valore che specifica se la separazione dei ruoli è abilitata.

CR_PROP_SANITIZEDCANAME
Tipo di dati della proprietà: String

Nome sanificato della CA. Per una definizione di un nome CA sanificato, vedere ICertConfig2::GetConfig.

CR_PROP_SANITIZEDCASHORTNAME
Tipo di dati della proprietà: String

Nome breve di sanificazione della CA. Per una definizione di un nome breve della CA sanificata, vedere ICertConfig2::GetConfig.

CR_PROP_SHAREDFOLDER
Tipo di dati della proprietà: String

Nome della directory della cartella condivisa.

CR_PROP_TEMPLATES
Tipo di dati della proprietà: String

Elenco di modelli supportati dalla CA.

[in] PropIndex

Se il parametro PropId viene indicizzato, l'indice in base zero da usare durante il recupero del valore della proprietà. Se PropId non è indicizzato, questo valore viene ignorato.

[in] PropType

Specifica il tipo della proprietà, indicato nella colonna Significato della tabella PropId . Il tipo può essere uno dei tipi seguenti.

Valore Significato
PROPTYPE_LONG
Dati lunghi firmati
PROPTYPE_DATE
Data/ora (riservata per l'uso futuro)
PROPTYPE_BINARY
Dati binari
PROPTYPE_STRING
Dati stringa Unicode

[in] Flags

È possibile usare i flag seguenti per specificare il formato del valore della proprietà restituita; questi flag hanno significato solo per i dati binari (ad esempio certificati, catene di certificati o elenchi di revoche di certificati) e vengono ignorati in caso contrario.

Valore Significato
CV_OUT_BASE64
BASE64 senza BEGIN/END
CV_OUT_BASE64HEADER
BASE64 con BEGIN CERTIFICATE e END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 con BEGIN NEW CERTIFICATE REQUEST e END NEW CERTIFICATE REQUEST
CV_OUT_BASE64X509CRLHEADER
BASE64 con BEGIN X509 CRL e END X509 CRL
CV_OUT_BINARY
Binary
CV_OUT_HEX
Stringa esadecimale
CV_OUT_HEXADDR
Stringa esadecimale con indirizzo/offset
CV_OUT_HEXASCII
Stringa esadecimale con ASCII
CV_OUT_HEXASCIIADDR
Stringa esadecimale con ASCII e address/offset

[out] pvarPropertyValue

Puntatore a un buffer che riceve il valore della proprietà richiesto. È responsabilità del chiamante liberare questa risorsa quando viene eseguita chiamando VariantClear.

Valore restituito

C++

Il valore restituito è un HRESULT. Un valore di S_OK indica che il metodo ha avuto esito positivo.

VB

Valore della proprietà richiesto.

Commenti

I valori seguenti vengono restituiti quando l'identificatore della proprietà è CR_PROP_BASECRLPUBLISHSTATUS o CR_PROP_DELTACRLPUBLISHSTATUS. Questi valori possono essere combinati.

Valore Descrizione
CPF_BADURL_ERROR Un URL non è valido.
CPF_BASE È stata pubblicata una CRL di base.
CPF_CASTORE_ERROR Un errore dell'archivio CA ha impedito la pubblicazione.
CPF_COMPLETE È stata pubblicata una CRL completa.
CPF_DELTA È stata pubblicata una CRL delta.
CPF_FILE_ERROR Un errore di file ha impedito la pubblicazione.
CPF_FTP_ERROR Un errore FTP ha impedito la pubblicazione.
CPF_HTTP_ERROR Un errore HTTP ha impedito la pubblicazione.
CPF_LDAP_ERROR Un errore LDAP ha impedito la pubblicazione.
CPF_MANUAL Una classe CRL è stata pubblicata manualmente.
CPF_SHADOW È stato pubblicato un CRL differenziale vuoto, insieme a un nuovo CRL BASE.
CPF_SIGNATURE_ERROR Errore di firma impedito alla pubblicazione.
 

Per un esempio di recupero di una CRL, vedere Recupero di un elenco di revoche di certificati.

Esempio

Nell'esempio seguente viene illustrato il recupero del certificato di firma della CA. L'esempio presuppone che il puntatore dell'interfaccia ICertAdmin2 sia valido.

BSTR bstrCA = NULL;
VARIANT var1;
HRESULT hr;

bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
    printf("Failed to allocate memory for bstrCA\n");
    exit(1);
}

VariantInit(&var1);
// Retrieve the CA signature certificate at index 0.
hr = pAdmin2->GetCAProperty(bstrCA,
                                CR_PROP_CASIGCERT,
                                0,
                                PROPTYPE_BINARY,
                                CV_OUT_BASE64HEADER,
                                &var1);
if (FAILED(hr))
{
    printf("Failed GetCAProperty\n");
    SysFreeString(bstrCA);
    exit(1);  // Or other error action.
}

// Use the property as needed.
// ...

// Clear the variant when finished.
VariantClear(&var1);
SysFreeString(bstrCA);

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certadm.h (include Certsrv.h)
Libreria Certidl.lib
DLL Certadm.dll