X509VerificationFlags 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定應該在 X509 鏈結中驗證憑證的條件。
此列舉支援其成員值的位元組合。
public enum class X509VerificationFlags
[System.Flags]
public enum X509VerificationFlags
[<System.Flags>]
type X509VerificationFlags =
Public Enum X509VerificationFlags
- 繼承
- 屬性
欄位
| 名稱 | 值 | Description |
|---|---|---|
| NoFlag | 0 | 沒有包含任何與驗證相關的標記。 |
| IgnoreNotTimeValid | 1 | 在判斷證書有效性時,忽略那些因過期或尚未生效而無效的證書鏈。 |
| IgnoreCtlNotTimeValid | 2 | 在決定憑證驗證時,請忽略憑證信任清單(CTL)因 CTL 已過期等原因而無效的事實。 |
| IgnoreNotTimeNested | 4 | 忽略憑證授權中心(CA)和已簽發憑證的有效期並非巢狀,這點在驗證證書時是存在的。 例如,CA 認證的有效期可為 1 月 1 日至 12 月 1 日,而核發的證書則為 1 月 2 日至 12 月 2 日,這表示有效期並非巢狀。 |
| IgnoreInvalidBasicConstraints | 8 | 忽略基本限制在決定憑證驗證時並不適用。 |
| AllowUnknownCertificateAuthority | 16 | 忽略因為未知的憑證授權中心(CA)或部分鏈條,鏈無法驗證。 |
| IgnoreWrongUsage | 32 | 在判斷憑證驗證時,請忽略該證書並非為當前用途而發出的事實。 |
| IgnoreInvalidName | 64 | 在判斷證書驗證時,請忽略證書名稱的無效。 |
| IgnoreInvalidPolicy | 128 | 在判斷憑證驗證時,忽略該憑證政策無效的事實。 |
| IgnoreEndRevocationUnknown | 256 | 在驗證憑證時,忽略終端憑證(使用者憑證)撤銷情況未知。 |
| IgnoreCtlSignerRevocationUnknown | 512 | 在決定憑證驗證時,請忽略憑證信任清單(CTL)簽署者撤銷情況未知。 |
| IgnoreCertificateAuthorityRevocationUnknown | 1024 | 在決定憑證驗證時,請忽略憑證授權中心撤銷情況未知的事實。 |
| IgnoreRootRevocationUnknown | 2048 | 在決定憑證驗證時,忽略根本撤銷是未知的事實。 |
| AllFlags | 4095 | 所有與驗證相關的旗標皆包含在內。 |
範例
以下範例會開啟目前使用者的個人憑證儲存庫,允許使用者選擇憑證,然後將憑證及憑證鏈資訊寫入主控台。 產出取決於你選擇的證書。
//Output chain information of the selected certificate.
X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.Build (certificate);
Console.WriteLine ("Chain Information");
Console.WriteLine ("Chain revocation flag: {0}", ch.ChainPolicy.RevocationFlag);
Console.WriteLine ("Chain revocation mode: {0}", ch.ChainPolicy.RevocationMode);
Console.WriteLine ("Chain verification flag: {0}", ch.ChainPolicy.VerificationFlags);
Console.WriteLine ("Chain verification time: {0}", ch.ChainPolicy.VerificationTime);
Console.WriteLine ("Chain status length: {0}", ch.ChainStatus.Length);
Console.WriteLine ("Chain application policy count: {0}", ch.ChainPolicy.ApplicationPolicy.Count);
Console.WriteLine ("Chain certificate policy count: {0} {1}", ch.ChainPolicy.CertificatePolicy.Count, Environment.NewLine);
'Output chain information of the selected certificate.
Dim ch As New X509Chain()
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online
ch.Build(certificate)
Console.WriteLine("Chain Information")
Console.WriteLine("Chain revocation flag: {0}", ch.ChainPolicy.RevocationFlag)
Console.WriteLine("Chain revocation mode: {0}", ch.ChainPolicy.RevocationMode)
Console.WriteLine("Chain verification flag: {0}", ch.ChainPolicy.VerificationFlags)
Console.WriteLine("Chain verification time: {0}", ch.ChainPolicy.VerificationTime)
Console.WriteLine("Chain status length: {0}", ch.ChainStatus.Length)
Console.WriteLine("Chain application policy count: {0}", ch.ChainPolicy.ApplicationPolicy.Count)
Console.WriteLine("Chain certificate policy count: {0} {1}", ch.ChainPolicy.CertificatePolicy.Count, Environment.NewLine)
備註
這些旗標指示鏈驗證應在哪些條件下進行。 例如,如果應用程式不要求憑證鏈中的時間值有效,可以使用 IgnoreNotTimeValid 標誌。