[英]How to send a RestSharp request with a certificate attached in a UWP application?
我创建了一个 .NET Core 控制台应用程序,该应用程序完全符合我的需要:发送带有附加证书的 RestSharp 请求。 一切正常。 这是代码:
static void Main(string[] args)
{
var client = new RestSharp.RestClient();
client.ClientCertificates = new X509CertificateCollection();
client.ClientCertificates.Add(new X509Certificate2(@"C:\Users\kid_j\Downloads\badssl.com-client.p12", "badssl.com"));
var result = client.Execute(new RestSharp.RestRequest("https://client.badssl.com/", RestSharp.Method.GET));
Console.WriteLine(result.StatusCode);
}
但是,当我将相同的代码放在 UWP 应用程序中时,它不起作用。 我收到此错误消息:
发送请求时出错。 在个人 (\"MY\") 证书存储中找不到客户端证书。 在 UWP 中,仅当客户端证书已添加到该证书存储时才受支持。
我试过双击证书文件并安装证书,但我仍然遇到同样的问题。
有什么想法吗?
正如@daniel 提到的,您需要提供Shared User Certificates
。 之后,您需要从X509Store
获取证书。
List<Certificate> certificatesViews = new List<Certificate> { };
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
for (int i = 0; i < store.Certificates.Count; i++)
{
X509Certificate2 cert = store.Certificates[i];
if(cert.SerialNumber=="YourSerial")
{
client.ClientCertificates.Add(cert);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.