ICertServerPolicy::SetCertificateProperty-Methode (certif.h)
Verwenden Sie die SetCertificateProperty-Methode , um eine Eigenschaft festzulegen, die einem Zertifikat zugeordnet ist.
Syntax
HRESULT SetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[in] const VARIANT *pvarPropertyValue
);
Parameter
[in] strPropertyName
Gibt die festzulegende Eigenschaft an. Sie können eine der dem Zertifikat zugeordneten Namenseigenschaften festlegen.
Darüber hinaus können Sie die folgenden Zertifikateigenschaften festlegen.
Wert | Bedeutung |
---|---|
|
Das Zertifikat ist vor dem angegebenen Datum ungültig. |
|
Das Zertifikat ist nach dem angegebenen Datum ungültig. |
|
Legen Sie diese Eigenschaft auf 0x00000400 fest, um zu verhindern, dass die Anforderung in der Zertifizierungsstellendatenbank beibehalten wird.
Vorsicht Überschreiben Sie beim Festlegen dieser Eigenschaft keine von GetCertificateProperty zurückgegebenen Maskenwerte. Legen Sie den Wert fest, indem Sie ein bitweises OR mit den vorhandenen Werten ausführen.
|
|
Ein boolescher Wert, der angibt, ob die Zertifizierungsstelle den gesamtstrukturübergreifenden Registrierungsmodus ausführen soll.
Windows Server 2008 und Windows Server 2003: Die gesamtstrukturübergreifende Registrierung wird nicht unterstützt. Die gesamtstrukturübergreifende Registrierung wird ab Windows Server 2008 R2 unterstützt. |
|
Weist die Zertifizierungsstelle an, den Namen des Anforderungskontos ("RequesterName") und den distinguished Name festzulegen. |
|
Weist die Zertifizierungsstelle an, den Benutzerprinzipalnamen (UPN) des Anforderers in den Anforderernamen ("RequesterName") zu konvertieren und den Anforderernamen und den distinguished Name des Anforderers festzulegen. |
|
Weist die Zertifizierungsstelle an, den FQDN 1779 des Anforderers in den Namen des Anforderers zu konvertieren und den Anforderernamen ("RequesterName") und den distinguished Name des Anforderers festzulegen. |
[in] PropertyType
Gibt den Typ der festzulegenden Eigenschaft an. Der Type-Parameter muss mit dem Datentyp von pvarValue übereinstimmen, der im Feld vt der VARIANT-Struktur festgelegt ist. Der Type-Parameter kann auf einen der folgenden Typen festgelegt werden.
Wert | Bedeutung |
---|---|
|
Signierte lange Daten. |
|
Datums-/Uhrzeitdaten. |
|
Binärdaten. |
|
Unicode-Zeichenfolgendaten |
[in] pvarPropertyValue
Gibt den Wert an, auf den die Eigenschaft festgelegt werden soll.
Rückgabewert
VB
Wenn die Methode erfolgreich ist, gibt die Methode S_OK zurück.Wenn die Methode fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.
Hinweise
Sie müssen ICertServerPolicy::SetContext aufrufen, bevor Sie diese Methode verwenden.
Die Zertifikateigenschaften NotBefore und NotAfter beschränken die Gültigkeitsdauer eines Zertifikats. Der Datentyp für diese Eigenschaften ist ein VARIANT-Gleitkommadatum, das von COleDateTime in Automation abgeleitet wird.
Beim Festlegen der Zertifikateigenschaften NotBefore und NotAfter mit SetCertificateProperty gelten die folgenden Einschränkungen:
- Das NotBefore-Datum kann nicht auf ein Datum vor dem NotBefore-Datum des Zertifizierungsstelle-Zertifikats festgelegt werden.
- Das NotAfter-Datum kann nicht auf ein Datum nach dem NotAfter-Datum des Zertifizierungsstellenzertifikats festgelegt werden.
- Das NotBefore-Datum kann nicht auf ein Datum festgelegt werden, das früher als bereits festgelegt ist, auch wenn das neue Datum später als das NotBefore-Datum des Zertifizierungsstellenzertifikats liegt.
- Das NotAfter-Datum kann nicht auf ein Datum festgelegt werden, das später als bereits festgelegt ist, auch wenn das neue Datum vor dem NotAfter-Datum des Zertifizierungsstellenzertifikats liegt.
Beispiele
Im folgenden Beispiel wird die SetCertificateProperty-Methode aufgerufen, um die NotBefore-Zertifikateigenschaft festzulegen. Im Beispiel wird davon ausgegangen, dass pServer gültig ist und die ICertServerPolicy::SetContext-Methode aufgerufen wurde.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Nicht unterstützt |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | certif.h (include Certsrv.h) |
Bibliothek | Certidl.lib |
DLL | Certcli.dll |