Metodo ICertServerPolicy::SetCertificateProperty (certif.h)
Utilizzare il metodo SetCertificateProperty per impostare una proprietà associata a un certificato.
Sintassi
HRESULT SetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[in] const VARIANT *pvarPropertyValue
);
Parametri
[in] strPropertyName
Specifica la proprietà da impostare. È possibile impostare una delle proprietà nome associate al certificato.
Inoltre, è possibile impostare le proprietà del certificato seguenti.
Valore | Significato |
---|---|
|
Il certificato non è valido prima della data specificata. |
|
Il certificato non è valido dopo la data specificata. |
|
Impostare questa proprietà su 0x00000400 per impedire che la richiesta venga salvata in modo permanente nel database della CA.
Attenzione Non sovrascrivere i valori mask restituiti da GetCertificateProperty durante l'impostazione di questa proprietà. Impostare il valore eseguendo un OR bit per bit con i valori esistenti.
|
|
Valore booleano che specifica se la CA deve funzionare in modalità di registrazione tra foreste.
Windows Server 2008 e Windows Server 2003: La registrazione tra foreste non è supportata. La registrazione tra foreste è supportata a partire da Windows Server 2008 R2. |
|
Indica alla CA di impostare il nome dell'account richiedente ("RequesterName") e il nome distinto. |
|
Indica alla CA di convertire il nome dell'entità utente (UPN) del richiedente nel nome del richiedente ("RequesterName") e di impostare il nome del richiedente e il nome distinto del richiedente. |
|
Indica alla CA di convertire il nome FQDN 1779 del richiedente nel nome del richiedente e di impostare il nome del richiedente ("RequesterName") e il nome distinto del richiedente. |
[in] PropertyType
Specifica il tipo della proprietà da impostare. Il parametro Type deve essere d'accordo con il tipo di dati di pvarValue impostato nel campo vt della struttura VARIANT . Il parametro Type può essere impostato su uno dei tipi seguenti.
Valore | Significato |
---|---|
|
Dati lunghi firmati. |
|
Dati di data/ora. |
|
Dati binari. |
|
Dati stringa Unicode |
[in] pvarPropertyValue
Specifica il valore su cui impostare la proprietà.
Valore restituito
VB
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 dei codici di errore comuni, vedere Valori HRESULT comuni.
Commenti
È necessario chiamare ICertServerPolicy::SetContext prima di usare questo metodo.
Le proprietà del certificato NotBefore e NotAfter vincolano la durata durante la quale un certificato è valido. Il tipo di dati per queste proprietà è una data VARIANT a virgola mobile derivata da COleDateTime in Automazione.
Quando si impostano le proprietà del certificato NotBefore e NotAfter con SetCertificateProperty, si applicano le restrizioni seguenti:
- La data NotBefore non può essere impostata su una data precedente alla data NotBefore del certificato dell'autorità di certificazione.NotBefore date.
- La data NotAfter non può essere impostata su una data successiva alla data NotAfter del certificato CA.
- La data NotBefore non può essere impostata su una data precedente a quella già impostata, anche se la nuova data è successiva alla data NotBefore del certificato CA.
- La data NotAfter non può essere impostata su una data successiva a quella già impostata, anche se la nuova data è precedente alla data NotAfter del certificato CA.
Esempio
Nell'esempio seguente viene chiamato il metodo SetCertificateProperty per impostare la proprietà del certificato NotBefore. L'esempio presuppone che pServer sia valido e che sia stato chiamato il metodo ICertServerPolicy::SetContext .
HRESULT hr;
ICertServerPolicy *pServer;
SYSTEMTIME st;
BSTR bstrPropName;
VARIANT vPropValue;
bstrPropName = SysAllocString(L"NotBefore");
if (NULL == bstrPropName)
{
printf("Unable to allocate memory.\n");
return E_OUTOFMEMORY;
}
// Set the 'NotBefore' property to Noon on Jan. 1, 2000.
memset( &st, 0, sizeof(SYSTEMTIME));
st.wYear = 2000;
st.wMonth = 1; // Jan.
st.wDay = 1; // 1st day of month.
st.wHour = 12; // Noon.
// Place the date into VARIANT required format.
VariantInit( &vPropValue );
vPropValue.vt = VT_DATE;
if ( !SystemTimeToVariantTime( &st, &vPropValue.date))
{
printf("Unable to convert time.\n");
SysFreeString(bstrPropName);
return E_FAIL
}
// Set the NotBefore property in the certificate:
hr = pServer->SetCertificateProperty(bstrPropName,
PROPTYPE_DATE,
&vPropValue);
SysFreeString(bstrPropName);
VariantClear(&vPropValue);
if (FAILED(hr))
{
printf("SetCertificateProperty failed [%x]\n", hr);
return hr;
}
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 |