我正在尝试编写一个与 Windows Azure 管理 API 进行通信的 WinRT 应用程序。为此,必须上传满足特定要求的证书,然后应用程序使用该证书来验证请求。
为了获得更好的用户体验,我希望能够为他们生成证书并将应用程序配置为使用该证书。通常,我会访问 System.Security.Cryptography 命名空间,但它似乎无法从完整框架的“.NET for Windows Store 应用程序”子集中获得。
有什么想法可以在不调用外部服务的情况下创建此自签名证书吗?
最佳答案
虽然通常可以使用 CertEnrol COM 库(Windows 的一部分)创建证书,但沙盒 WinRT 环境中没有可用的内置机制。
唯一真正的解决方案是在外部进程(例如 ASP.NET 网站)中生成证书,然后通过 TLS 安全连接将证书及其私钥和密码作为 Base-64 编码字符串传输。
一旦编码数据在 WinRT 应用程序中可用,ImportPfxDataAsync
方法用于使证书可供 WinRT 应用程序进一步使用。
有关在 .NET 代码中创建自签名证书的更多信息,请参阅 How to create a self-signed certificate using C#?
关于.net - 如何在 WinRT 应用程序中创建自签名证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270988/