忽略 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中文網其他相關文章!