Windows Phone 8.1是否支持将客户端证书添加到HTTP Web请求?我尝试做类似以下的事情,但我似乎无法确定WP8.1上的等价物(如果有的话):
System.Net.HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.ClientCertificates.Add(certificate);
感谢。
答案 0 :(得分:5)
我假设您已将客户端证书放在app证书库中。如果不是这样你将不得不这样做 1)下载PFX文件。 2)使用以下方式将其安装在App的证书库中
await CertificateEnrollmentManager.ImportPfxDataAsync(certString, "Your_PFX_Password", ExportOption.Exportable, KeyProtectionLevel.NoConsent, InstallOptions.None, friendlyName);
3)下一步是在证书库中查找证书。这完成如下
CertificateQuery certQuery = new CertificateQuery();
certQuery.FriendlyName = friendlyName;
IReadOnlyList<Certificate> certs = await CertificateStores.FindAllAsync(certQuery)
证书[0]将拥有证书
4)将证书附加到HTTP请求
HttpBaseProtocolFilter protolFilter = new HttpBaseProtocolFilter();
protolFilter.ClientCertificate = certs[0] //from previous step
HttpClient client = new HttpClient(protolFilter)
要注意的是,您不应该使用System.Net.htpp.HttpClient。相反,你应该使用Windows.Web.Http.HttpClient。