【发布时间】:2017-04-17 08:48:13
【问题描述】:
我需要在 REST API 客户端中使用 Https 相互身份验证,因为我们只能获取 URI,我们无法像为 WCF 那样添加客户端证书。 所以我在我的 web .config 中添加了如下密钥:
<appSettings>
<add key="URI" value="https://localhost:8080/RestfulAPI/RestfulService.svc/restfulData" />
<add key="CertificateValue" value="certficatename"/>
<add key="CertificateLocation" value="LocalMachine"/>
<add key="CertificateStoreName" value="My"/>
<add key="CertificateFindType" value="FindBySubjectName"/>
</appSettings>
我在我的客户端代码中使用它,如下所示:
X509Store store = new X509Store(ConfigurationManager.AppSettings["CertificateStoreName"], ConfigurationManager.AppSettings["CertificateLocation"]);
store.Open(OpenFlags.ReadOnly);
X509CertificateCollection certificates = store.Certificates.Find(ConfigurationManager.AppSettings["CertificateFindType"], ConfigurationManager.AppSettings["CertificateValue"], true);
X509Certificate certificate = certificates[0];
HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
request.ClientCertificates.Add(certificate);
HttpWebResponse response = request.GetResponse() as HttpWebResponse
这是在 REST API 客户端中实现相互身份验证的正确方法吗?
或者如果没有,请有人帮助我正确的方法?
【问题讨论】:
标签: c# wcf restful-url wcf-rest