ICertServerPolicy ::SetCertificateProperty, méthode (certif.h)
Utilisez la méthode SetCertificateProperty pour définir une propriété associée à un certificat.
Syntaxe
HRESULT SetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[in] const VARIANT *pvarPropertyValue
);
Paramètres
[in] strPropertyName
Spécifie la propriété à définir. Vous pouvez définir l’une des propriétés de nom associées au certificat.
En outre, vous pouvez définir les propriétés de certificat suivantes.
Valeur | Signification |
---|---|
|
Le certificat n’est pas valide avant la date donnée. |
|
Le certificat n’est pas valide après la date donnée. |
|
Définissez cette propriété sur 0x00000400 pour empêcher la persistance de la requête dans la base de données d’autorité de certification.
Attention Ne remplacez pas les valeurs de masque retournées par GetCertificateProperty lors de la définition de cette propriété. Définissez la valeur en effectuant un or au niveau du bit avec les valeurs existantes.
|
|
Valeur booléenne qui spécifie si l’autorité de certification doit utiliser le mode d’inscription entre forêts.
Windows Server 2008 et Windows Server 2003 : L’inscription entre forêts n’est pas prise en charge. L’inscription entre forêts est prise en charge à partir de Windows Server 2008 R2. |
|
Indique à l’autorité de certification de définir le nom du compte du demandeur (« RequesterName ») et son nom unique. |
|
Indique à l’autorité de certification de convertir le nom d’utilisateur principal (UPN) du demandeur en nom du demandeur (« RequesterName ») et de définir le nom du demandeur et le nom unique du demandeur. |
|
Indique à l’autorité de certification de convertir le nom de domaine complet 1779 du demandeur en nom du demandeur et de définir le nom du demandeur (« RequesterName ») et le nom unique du demandeur. |
[in] PropertyType
Spécifie le type de la propriété en cours de définition. Le paramètre Type doit être en accord avec le type de données pvarValue défini dans le champ vt de la structure VARIANT . Le paramètre Type peut être défini sur l’un des types suivants.
Valeur | Signification |
---|---|
|
Données longues signées. |
|
Données de date/heure. |
|
Données binaires. |
|
Données de chaîne Unicode |
[in] pvarPropertyValue
Spécifie la valeur sur laquelle définir la propriété.
Valeur retournée
VB
Si la méthode réussit, la méthode retourne S_OK.Si la méthode échoue, elle retourne une valeur HRESULT qui indique l’erreur. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.
Remarques
Vous devez appeler ICertServerPolicy ::SetContext avant d’utiliser cette méthode.
Les propriétés de certificat NotBefore et NotAfter limitent la durée de vie pendant laquelle un certificat est valide. Le type de données de ces propriétés est une date VARIANT à virgule flottante dérivée de COleDateTime dans Automation.
Les restrictions suivantes s’appliquent lors de la définition des propriétés de certificat NotBefore et NotAfter avec SetCertificateProperty :
- La date NotBefore ne peut pas être définie sur une date antérieure à la date NotBefore du certificat de l’autorité de certification .
- La date NotAfter ne peut pas être définie sur une date postérieure à la date NotAfter du certificat d’autorité de certification.
- La date NotBefore ne peut pas être définie sur une date antérieure à celle déjà définie, même si la nouvelle date est postérieure à la date NotBefore du certificat d’autorité de certification.
- La date NotAfter ne peut pas être définie sur une date ultérieure à celle déjà définie, même si la nouvelle date est antérieure à la date NotAfter du certificat d’autorité de certification.
Exemples
L’exemple suivant appelle la méthode SetCertificateProperty pour définir la propriété de certificat NotBefore. L’exemple suppose que pServer est valide et que la méthode ICertServerPolicy ::SetContext a été appelée.
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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Aucun pris en charge |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | certif.h (include Certsrv.h) |
Bibliothèque | Certidl.lib |
DLL | Certcli.dll |
Voir aussi
ICertServerExit ::GetCertificateProperty