首頁 >後端開發 >C++ >如何在C#中忽略SSL憑證驗證?

如何在C#中忽略SSL憑證驗證?

Patricia Arquette
Patricia Arquette原創
2025-01-15 19:36:45355瀏覽

How Can I Ignore SSL Certificate Verification in C#?

忽略 SSL 憑證驗證

在 HTTPS 請求期間繞過 SSL 憑證驗證,可以使用 ServicePointManager.ServerCertificateValidationCallback 代理程式。此代理程式允許自訂憑證驗證邏輯,使我們能夠忽略驗證錯誤。

代理細部

每次與不受信任或已過期憑證建立 HTTPS 連線時,都會呼叫 ServicePointManager.ServerCertificateValidationCallback 代理程式。它接受四個參數:

  • obj:嘗試驗證憑證的 ServicePoint 實例。
  • certificate:正在驗證的 X509 證書。
  • chain:與憑證關聯的 X509 憑證鏈。
  • errors:與驗證嘗試關聯的 SSL 策略錯誤。

實作

要忽略證書驗證,請註冊一個始終回傳 true 的代理,以指示接受證書。這可以在 GetRequest() 方法中完成,如下面的程式碼片段所示:

<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback = delegate(
    Object obj, X509Certificate certificate, X509Chain chain, 
    SslPolicyErrors errors)
    {
        return (true);
    };</code>

執行與放置

WebRequest 嘗試建立 HTTPS 連線並遇到信任或過期錯誤時,會呼叫此代理方法。應在執行請求之前註冊它。在提供的程式碼中,它放置在 Stream stream = request.GetRequestStream() 行之前。

以上是如何在C#中忽略SSL憑證驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn