[英]Bypassing SSL Certificate Validation on DotNet Core Service Stack
我知道.Net Core中不再存在ServicePointManager.ServerCertificateValidationCallback
,而是替換為:
using(var handler = new System.Net.Http.HttpClientHandler())
{
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
handler.ServerCertificateCustomValidationCallback = (request, cert, chain, errors) =>
{
return true;
};
}
}
但是,我們目前正在使用ServiceStack.Core
庫,據我所知,它不會暴露像這樣的屬性或處理程序本身。
我如何告訴ServiceStack客戶端在此代碼中繞過ssl驗證?
using(var client = new JsonServiceClient("https://www.google.com"))
{
var response = client.Get("/results");
}
如果有辦法,Windows和Linux上的工作方式是否相同?
JsonServiceClient
是基於.NET HttpWebRequest
構建的,它已經在.NET Core中重寫為HttpClient的包裝器,因此我們通常建議.NET Core避免這種開銷(比.NET 4.5慢得多)並切換到使用JsonHttpClient ServiceStack.HttpClient,因為它直接使用HttpClient
,您可以在其中注入自己的HttpClientHandler
:
var client = new JsonHttpClient(baseUrl)
{
HttpMessageHandler = new HttpClientHandler
{
UseCookies = true,
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
ServerCertificateCustomValidationCallback = (req,cert,chain,errors) => true
}
};
請注意,建議重用HttpClient實例,以便盡可能重用HttpClient實例並避免丟棄它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.