我正在尝试保护我们的 WCF 服务并不断遇到问题。我们利用 ChannelFactory 在 silverlight 客户端和服务器之间建立连接。
我最初使用 TransportWithMessageCredential 将用户名和密码从客户端发送到服务器。只要托管服务的服务器和 silverlight 客户端是相同的 url,我就可以正常工作。一旦我更改了网址,我就会收到安全错误。我设置了一个 crossdomain.xml 策略,就像错误中建议的那样,但这并没有解决问题。经过一些研究,我发现如果使用跨站点调用并传递用户名,您需要使用证书来保护您的消息。
我现在正在尝试在客户端中设置证书。由于客户端在多个办公室使用,我们无法在每台机器上安装证书。我想将其作为嵌入式资源,然后在创建 channelfactory 时设置证书。我已经看到了这样做的例子,这些例子表明了以下内容。
var channelFactory = new ChannelFactory<IYourService>();
channelFactory.Credentials.ClientCertificate.Certificate =
clientCertificate;
但是,我没有在凭据上看到 ClientCertificate 的属性。我只看到用户名。
是不是我做错了什么,或者这在 Silverlight 中是不可能的?