Silverlight,WCF服务,集成安全性和ssl / https不可能吗?

时间:2010-05-28 22:12:59

标签: wcf silverlight

我有这个设置,在使用http时非常有效。

Silverlight 3客户端 .net 4使用basicHttpBinding在IIS中托管的WCF服务,并在站点上使用集成安全性

在网站上将https设置为必需时,设置将停止工作。

在uri上使用wcftestclient我收到消息: HTTP请求未经授权,客户端身份验证方案为“匿名”。从服务器收到的身份验证标头是“Negotiate,NTLM”。远程服务器返回错误:(401)未经授权。

也许这是有道理的,因为wcftestclient没有传递凭证?

在web.config中,设置服务绑定的安全模式设置为“Transport”。

silverlight客户端的创建方式如下:

        BasicHttpBinding basicHttpBinding = new BasicHttpBinding();

        basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport;

        var serviceClient = new ImportServiceClient(basicHttpBinding, serviceAddress);

服务地址是以https://开头的 Silverlight客户端报告此错误:

提供的URI方案“https”无效;预计'http'。 参数名称:via

请记住,将其切换回http(并将安全模式设置为“TransportCredentialOnly”会使一切正常运行。

我想要的设置是否支持?如果是这样,应该如何配置?

1 个答案:

答案 0 :(得分:1)

事实证明上述设置确实有效。关键是

basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport; 

在客户端代码中,

    <binding name="silverlightBinding" maxReceivedMessageSize="10485760">
      <security mode="Transport">
        <transport clientCredentialType="Windows"/>
      </security>
    </binding>

在服务端。

不知怎的,我正在使用xap文件而没有安全模式的更改。我一使用新编译的xap就开始工作了。