0

我看到了很多关于这个的问题和答案:

ServicePointManager.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true;

但它不添加使用。

我正在写一个 Windows 8 项目,而不是 Windows 8.1

但所有文件都说支持的平台是:Windows 8 http://msdn.microsoft.com/ru-ru/library/system.net.security.protectionlevel(v=vs.110).aspx

有什么解决方法吗?在 Windows 8.0 中?

因为这意味着我们的应用程序无法在 Windows 8 上运行。

4

1 回答 1

0

对于 Windows 8,有两种情况。

您的证书是已知的:您可以将证书添加到应用程序并在包清单中添加声明

您需要信任未知证书,您需要自定义 SSL/TLS 实现。例如,您可以使用WinRT Bouncy Castle。有几种方法可以支持不受信任的证书。更简单的方法是实现自定义 ICertificateVerifyer 并在常规 WinRT 普通套接字之上使用 TlsProtocolHandler 连接:

        this.port = port;
        host = new Windows.Networking.HostName(hostName);

        socket = new Windows.Networking.Sockets.StreamSocket();

        await socket.ConnectAsync(host, port.ToString(), Windows.Networking.Sockets.SocketProtectionLevel.PlainSocket);
        handler = new TlsProtocolHandler(socket.InputStream.AsStreamForRead(), socket.OutputStream.AsStreamForWrite());
        handler.Connect(certificateVerifyer);
于 2013-11-07T13:08:36.890 回答