X509VerificationFlags 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定應該進行 X509 鏈結中之憑證驗證的條件。
此列舉支援其成員值的位元組合。
public enum class X509VerificationFlags
[System.Flags]
public enum X509VerificationFlags
[<System.Flags>]
type X509VerificationFlags =
Public Enum X509VerificationFlags
- 繼承
- 屬性
欄位
AllFlags | 4095 | 所有驗證相關的旗標全部都包含在內。 |
AllowUnknownCertificateAuthority | 16 | 忽略鏈結無法驗證,因為 CA) 或部分鏈結 (未知的證書頒發機構單位。 |
IgnoreCertificateAuthorityRevocationUnknown | 1024 | 判斷憑證是否通過驗證時,忽略憑證授權單位撤銷狀態不明的情況。 |
IgnoreCtlNotTimeValid | 2 | 判斷憑證是否通過驗證時,忽略憑證信任清單 (CTL) 無效的狀況,例如 CTL 過期等等。 |
IgnoreCtlSignerRevocationUnknown | 512 | 判斷憑證是否通過驗證時,忽略憑證信任清單 (CTL) 簽署者撤銷狀態不明的情況。 |
IgnoreEndRevocationUnknown | 256 | 判斷憑證是否通過驗證時,忽略終端憑證 (使用者的憑證) 撤銷狀態不明的情況。 |
IgnoreInvalidBasicConstraints | 8 | 判斷憑證是否通過驗證時,忽略基本條件約束無效的情形。 |
IgnoreInvalidName | 64 | 判斷憑證是否通過驗證時,忽略憑證名稱無效的情形。 |
IgnoreInvalidPolicy | 128 | 判斷憑證是否通過驗證時,忽略憑證原則無效的情形。 |
IgnoreNotTimeNested | 4 | 驗證憑證時,忽略 CA (憑證授權單位) 憑證有效期間未完全涵蓋所發出憑證有效期間的情形。 例如,CA 憑證的有效期間為 1 月 1 日到 12 月 1 日,而已發行憑證的有效期間為 1 月 2 日到 12 月 2 日,這就代表有效期間未呈現巢狀關係。 |
IgnoreNotTimeValid | 1 | 判斷憑證是否有效時,忽略鏈結中無效的憑證,無論這些憑證無效的原因究竟是已經過期或尚未生效。 |
IgnoreRootRevocationUnknown | 2048 | 判斷憑證是否通過驗證時,忽略根撤銷狀態不明的情況。 |
IgnoreWrongUsage | 32 | 判斷憑證是否通過驗證時,忽略憑證並非核發給目前使用方式的情形。 |
NoFlag | 0 | 不包含任何與驗證相關的旗標。 |
範例
下列範例會開啟目前使用者的個人證書存儲,允許用戶選取憑證,然後將憑證和憑證鏈結資訊寫入控制台。 輸出取決於您選取的憑證。
//Output chain information of the selected certificate.
X509Chain ^ ch = gcnew 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.
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 旗標。