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
NotBefore
Datum/Uhrzeit
Das Zertifikat ist vor dem angegebenen Datum ungültig.
NotAfter
Datum/Uhrzeit
Das Zertifikat ist nach dem angegebenen Datum ungültig.
GeneralFlags
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.
 
Windows Storage Server 2003: Dieses Feld wird nicht unterstützt.
CrossForest
PROPTYPE_LONG
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.

RequesterSAMName
PROPTYPE_STRING
Weist die Zertifizierungsstelle an, den Namen des Anforderungskontos ("RequesterName") und den distinguished Name festzulegen.
RequesterUPN
PROPTYPE_STRING
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.
RequesterDN
PROPTYPE_STRING
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
PROPTYPE_LONG
Signierte lange Daten.
PROPTYPE_DATE
Datums-/Uhrzeitdaten.
PROPTYPE_BINARY
Binärdaten.
PROPTYPE_STRING
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

Weitere Informationen

ICertServerExit::GetCertificateProperty

ICertServerPolicy

ICertServerPolicy::SetContext

Namenseigenschaften