如何调用启用 SSL 的 Web Api?
Posted
技术标签:
【中文标题】如何调用启用 SSL 的 Web Api?【英文标题】:How to invoke SSL enabled Web Api? 【发布时间】:2014-03-07 12:20:04 【问题描述】:我需要从 WinForm 应用程序调用启用 SSL 的 Web Api。如何为此配置HttpClient
?
这些是我已经完成的先决条件:
-
我使用
RequireHttpsAttribute
在 Web Api 中启用了 SSL。
我在 IIS 中完成了必要的证书导入任务,以使我的 Web
Api 工作正常。
【问题讨论】:
【参考方案1】:您可以尝试将 HttpClinet 类与 HttpClientHandler 一起使用。
X509Certificate2 cert;
X509Store store = new X509Store(StoreName.My);
try
store.Open(OpenFlags.ReadOnly);
cert = store.Certificates.OfType<X509Certificate2>().First(p => p.Thumbprint == "...");
cert.Dump();
finally
if (store != null)
store.Close();
var clientHandler = new WebRequestHandler();
clientHandler.ClientCertificates.Add(cert);
var client = new HttpClient(clientHandler);
【讨论】:
谢谢,CertificateUtility
在哪里?
CertificateUtility 是我的包装器,类似于syfuhs.net/post/2011/05/12/…。我已经更改了代码以避免它。以上是关于如何调用启用 SSL 的 Web Api?的主要内容,如果未能解决你的问题,请参考以下文章
如何在启用基本身份验证的情况下启用对 Web API 中所有来源的访问?
如何在使用 openssl 的专用网络上的服务器上启用 SSL?