我正在尝试创建某种推送管理器,客户端,它将听取服务器必须说的内容。
没什么难的...我已经在 PC 端编写了它,感谢 WebSocket4Net,在 C# 上,它运行完美。
但问题是……:我的应用程序也必须在 Mac 上运行,使用相同的代码。我显然使用 Mono,并且 WebSocket4Net 库有效。不幸的是,每次我尝试打开一个套接字时,我都会得到一个很好的“RemoteCertificateNotAvailable
”,然后是一个“从服务器收到的无效证书
”。
这是我根据网上的一些建议尝试过的:
webSocket.AllowUntrustedCertificate = true;
System.Net.ServicePointManager.ServerCertificateValidationCallback = callbackValidation;
代码是基本的,看起来像库网站上的代码:https://websocket4net.codeplex.com
我不知道为什么这些解决方案不起作用。其他帖子说这应该有效,但我不知道为什么它在这里不起作用。
它可以通过手动将受信任的证书添加到 Mono (mozroots --import --sync) 或使用 certmgr 或类似的东西来工作。但我不想要这个解决方案,因为它需要在我以外的任何其他计算机上工作而无需安装任何东西。 我可以接受在我的应用程序中运行一些命令来安装一些证书......假设我对这些解决方案感兴趣。 但我宁愿找到一个暗示一些 C# 代码行的解决方案。
那么...有没有人知道如何绕过这个问题?
最佳答案
好吧,WebSocket4Net 库的创建者实际上在 8 月为此做了修复。 System.Net.ServicePointManager.ServerCertificateValidationCallback 现在有效。
关于c# - Mono 上的 WebSocket 证书(Mac,C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32400276/