我已经看到很多关于此的问题,并且回答:
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上运行。
答案 0 :(得分:0)
对于Windows 8,有两种情况。
您的证书已知:您可以将证书添加到应用程序并添加a declaration to the package manifest
您需要信任未知证书,您需要自定义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);