加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在Windows应用商店XAML应用中安装客户端证书

发布时间:2020-12-15 08:40:32 所属栏目:百科 来源:网络整理
导读:我想在 Windows Store XAML应用程序中使用客户端证书身份验证.使用makecert我已经创建了一个自签名的CA和客户端证书,该身份验证在IIS / ASP.NET浏览器(IE10,Chrome等)中工作正常. 现在我想在Windows应用商店应用中使用它,但我不确定如何实际安装证书.我有一
我想在 Windows Store XAML应用程序中使用客户端证书身份验证.使用makecert我已经创建了一个自签名的CA和客户端证书,该身份验证在IIS / ASP.NET浏览器(IE10,Chrome等)中工作正常.
现在我想在Windows应用商店应用中使用它,但我不确定如何实际安装证书.我有一个我导入到IE10的cert.pfx文件.
这是我用来通过SSL使用HTTP服务的代码.
HttpClientHandler handler = new HttpClientHandler();
handler.ClientCertificateOptions = ClientCertificateOption.Automatic;

HttpClient client = new HttpClient(handler);

不确定ClientCertificateOption.Automatic和ClientCertificateOption.Manual之间的区别.
当我尝试连接证书没有呈现给服务器,我得到401错误我猜测证书不存在于应用程序证书存储区中,因此没有任何内容被发送到服务器.我如何安装证书呢?

我应该使用CertificateEnrollmentManager.ImportPfxDataAsync()方法吗?如果是这样我怎样才能将.pfx转换为’Base64-encoded PFX message’
pfx应该包含私钥吗?

或者我可能应该使用证书扩展,如下所述:http://msdn.microsoft.com/en-us/library/windows/apps/hh464981.aspx#certificates_extension_content

解决方法

以下代码将加载pfx文件并创建可由ImportPfxDataAsync方法使用的base64编码字符串:
StorageFolder packageLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder certificateFolder = await packageLocation.GetFolderAsync("Certificates");
StorageFile certificate = await certificateFolder.GetFileAsync("YourCert.pfx");

IBuffer buffer = await Windows.Storage.FileIO.ReadBufferAsync(certificate);
string encodedString = Windows.Security.Cryptography.CryptographicBuffer.EncodeToBase64String(buffer);

这假定您将证书放在“证书”文件夹中.

您可能希望了解一下http://www.piotrwalat.net/client-certificate-authentication-in-asp-net-web-api-and-windows-store-apps/,它将介绍在Windows 8应用程序中使用客户端证书与asp.net web api进行通信的端到端方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读