使用WinRT接受无效的SSL证书

时间:2012-08-14 15:21:39

标签: c# microsoft-metro security windows-runtime

您希望应用程序接受无效的SSL证书(测试环境/自签名证书等)。

在.NET世界中,人们会使用ServerCertificateValidationCallback类来执行此操作。不幸的是,该类在WinRT上下文中不存在。

我需要使用WinRT使用Web API,该WinRT托管在没有有效ssl证书的服务器上。

如何使用HttpClient类或任何其他适当的类在WinRT中接受无效的ssl证书。

任何帮助或替代方案都会非常感激。

2 个答案:

答案 0 :(得分:3)

以下代码适用于我的调试方案:

var filter = new HttpBaseProtocolFilter();
#if DEBUG
    filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.Expired);
    filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.Untrusted);
    filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.InvalidName);
#endif
using (var httpClient = new HttpClient(filter)) {
    ...
}

答案 1 :(得分:-1)

在银光中,它是不被允许的。我还没有看到任何说它在winrt中被允许的东西。