客户端证书Windows Phone 8.1

时间:2014-05-26 22:39:53

标签: windows windows-phone windows-phone-8.1

Windows Phone 8.1是否支持将客户端证书添加到HTTP Web请求?我尝试做类似以下的事情,但我似乎无法确定WP8.1上的等价物(如果有的话):

System.Net.HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.ClientCertificates.Add(certificate);

感谢。

1 个答案:

答案 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。