ICertServerPolicy::GetCertificateProperty 方法 (certif.h)

GetCertificateProperty方法會從憑證傳回具名屬性。

您必須先呼叫 ICertServerPolicy::SetCoNtext ,才能使用此方法。

語法

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

參數

[in] strPropertyName

指定要擷取的具名屬性。 有一組稱為 名稱屬性的存貨憑證屬性,一律有效,而且可以藉由呼叫此方法來擷取。 如需這些屬性的相關資訊,請參閱 名稱屬性。 您也可以擷取名稱屬性以外的其他屬性。

只有在原則模組完成處理要求併發出憑證之後, ICertServerExit::GetCertificateProperty 才能存取憑證的 DistinguishedName 和 RawName 屬性。 發行的憑證的 DistinguishedName 和 RawName 屬性也可以使用 ICertServerExit::GetCertificateProperty來讀取結束模組。

GetCertificateProperty無法存取其他憑證屬性。 在原則模組傳回VR_INSTANT_OK併發出憑證之後,才會設定這些屬性。 如需所發行憑證中所有屬性的完整清單,請參閱 GetCertificateProperty

下列屬性對憑證而言是唯一的,而且可由 GetCertificateProperty讀取。

Certificate 屬性 意義
RequestID
帶正負號的 long
內部要求識別碼
NotBefore
Date/time
憑證開始日期
NotAfter
Date/time
憑證到期日
RawPublicKey
Binary
主旨索引鍵
PublicKeyAlgorithm
String
OID () 的主體金鑰演算法物件識別碼
RawPublicKeyAlgorithmParameters
Binary
主旨金鑰演算法參數
GeneralFlags
PROPTYPE_LONG
註冊要求中的一般旗標。 這是值的位 OR 。 唯一感興趣的值應該是 0x00000400 的旗標值,告知 CA 不要在資料庫中保存要求。 如果 CA 處於無資料庫模式 (也就是針對 Windows Server 2008 R2 和更新版本的 CA,CA 的資料庫已設定 ) DBFLAGS_ENABLEVOLATILEREQUESTS 旗標,請使用 certutil -getreg DbFlagscertutil -setreg DBFlags 以無資料庫模式設定 CA。

Windows Vista 和 Windows Storage Server 2003: 不支援此欄位。

RequesterNameFromOldCertificate
PROPTYPE_STRING
針對更新要求,傳回要求者帳戶名稱 (例如 contoso\requester) 。
 

下列屬性適用于 憑證授權單位單位

CA 屬性 意義
CAType
long
憑證授權單位單位的類型。 這可以是 Certsrv.h) 中定義 (下列其中一個值:
  • ENUM_ENTERPRISE_ROOTCA
  • ENUM_ENTERPRISE_SUBCA
  • ENUM_STANDALONE_ROOTCA
  • ENUM_STANDALONE_SUBCA
CertCount
long
CA 憑證的數目。 此值會加上 CA 已更新的次數。 如需更新的相關資訊,請參閱 認證
CertState
long
CA 憑證 狀態。 這個值可以是下列其中一個值:
  • CA_DISP_ERROR:從未發行 CA 憑證。
  • CA_DISP_REVOKED:CA 憑證已撤銷。
  • CA_DISP_VALID:CA 憑證仍然有效。
  • CA_DISP_INVALID:CA 憑證已過期。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新
CertSuffix
String
CA 憑證的尾碼。 尾碼是 CA 憑證的空字串,其索引為零;否則,尾碼 (格式為 「 (nn) 」,其中 nn 是憑證索引) 套用至指向儲存在檔案或目錄服務物件中 CA 憑證的所有 URL。 對於非LDAP URL,尾碼通常會出現在 「.crt」 文字之前。 針對 LDAP URL,尾碼通常會附加至完整辨別名稱中的第一個 'CN='。

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

CRLIndex
long
憑證撤銷清單 (CRL) 索引。 將憑證索引附加至此屬性名稱可讓您擷取 CRL 索引。 CRL 索引不一定符合憑證索引。 如需詳細資訊,請參閱 認證

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

CRLState
long
CRL 狀態。 這個值可以是下列其中一個值:
  • CA_DISP_ERROR:CRL 是由另一個 CA 憑證管理。
  • CA_DISP_REVOKED:已撤銷使用此 CA 憑證 CRL 的所有未到期 CA 憑證。
  • CA_DISP_VALID:CA 憑證仍會視需要用來發佈 CRL。
  • CA_DISP_INVALID:使用此 CA 憑證 CRL 的所有 CA 憑證都會過期。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新
CRLSuffix
String
CA CRL 的尾碼。 尾碼是 CRL 的空字串,其索引為零;否則,尾碼 (格式為 「 (nn) 」,其中 nn 是 CRL 索引) 會套用至指向儲存在檔案或目錄服務物件中 CRL 的所有 URL。 對於非 LDAP URL,尾碼通常會出現在 .crl 文字之前。 針對 LDAP URL,尾碼通常會附加至完整辨別名稱中的第一個 'CN='。

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

fUseDS
long
指出 CA 是否使用目錄服務。 這可以是下列其中一個值:
  • 0=no
  • 1=是
MachineDNSName
String
裝載 CA 之伺服器的 DNS 名稱。
ModuleRegistryLocation
String
模組可使用的登錄位置。
RawCACertificate
Binary
CA 憑證。

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

RawCRL
Binary
CA 的證書 吊銷清單 (CRL) 。

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

RequesterCAAccess
long
指出要求者是否已獲授權要求憑證。 這可以是下列其中一個值:
  • 0=no
  • 1=是
(憑證授權單位單位 MMC 嵌入式管理單元可用來控制 憑證要求 許可權。)
SanitizedCAName
String
CA 的 清理名稱 。 如需清理 CA 名稱的相關資訊,請參閱 ICertConfig::GetConfig
SanitizedShortName
String
CA 的清理名稱會縮短,其中包含雜湊值以確保唯一性。

[in] PropertyType

指定屬性類型。 此類型可以是下列其中一個值。

類型 意義
PROPTYPE_LONG
帶正負號的長資料
PROPTYPE_DATE
Date/time
PROPTYPE_BINARY
二進位資料
PROPTYPE_STRING
Unicode 字串資料

[out] pvarPropertyValue

將包含屬性值的 VARIANT 指標。

傳回值

如果方法成功,方法會傳回S_OK,而 *pvarPropertyValue 會設定為包含所要求屬性值的 VARIANT

如果方法失敗,它會傳回指出錯誤的 HRESULT 值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

規格需求

   
最低支援的用戶端 都不支援
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 certif.h (包含 Certsrv.h)
程式庫 Certidl.lib
Dll Certcli.dll

另請參閱

ICertServerPolicy

ICertServerPolicy::SetCoNtext

名稱屬性