![](/img/trans.png)
[英]Authenticate a c# client using RestSharp into Spring-boot server
[英]How to authenticate SSL certificates using RestSharp c#
我想使用 Restsharp 發送這個 GET 請求 -
這就是我要發送的 -
請求- 獲取,
URL - https://18.0.1.230:8080/api/report/test ,
Header - 鍵 = 內容類型,值 = 應用程序/x-www-form-urlencoded
在 Postman 上,我沒有發送關於授權類型的任何內容(其設置為“從父級繼承身份驗證”)檢查“從父級繼承身份驗證”圖像
我在 Postman 中設置了客戶端證書,所以我設置了它們的位置,postman 在發送此請求時使用它。 檢查“證書位置”圖像
我想知道如何使用 restSharp c# 代碼將這些證書添加到 GET 請求中,以便通過身份驗證並獲得 200 響應?
您需要做的是首先導入證書:
public static async Task<X509Certificate2> LoadPemCertificate(string certificatePath, string privateKeyPath)
{
using var publicKey = new X509Certificate2(certificatePath);
var privateKeyText = await File.ReadAllTextAsync(privateKeyPath);
var privateKeyBlocks = privateKeyText.Split("-", StringSplitOptions.RemoveEmptyEntries);
var privateKeyBytes = Convert.FromBase64String(privateKeyBlocks[1]);
using var rsa = RSA.Create();
if (privateKeyBlocks[0] == "BEGIN PRIVATE KEY")
{
rsa.ImportPkcs8PrivateKey(privateKeyBytes, out _);
}
else if (privateKeyBlocks[0] == "BEGIN RSA PRIVATE KEY")
{
rsa.ImportRSAPrivateKey(privateKeyBytes, out _);
}
var keyPair = publicKey.CopyWithPrivateKey(rsa);
return new X509Certificate2(keyPair.Export(X509ContentType.Pfx));
}
一旦你在 memory 中加載了證書,你所要做的就是將證書附加到 restsharp 客戶端:
var client = new RestClient("https://18.0.1.230:8080/api/report/test");
client.ClientCertificates.Add(new X509Certificate(certificate));
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.