2010-05-28 147 views
1

我有这个设置,使用http时完美的作品。Silverlight,WCF服务,集成安全性和SSL/HTTPS不可能?

网站

在IIS托管与basicHttpBinding的,并使用集成的安全当设置HTTPS的网站设置停止工作所需一个Silverlight 3客户端 .NET 4 WCF服务。

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

也许这是有道理的,因为wcftestclient没有通过凭据?

在web.config中设置服务绑定的安全模式设置为'传输'。

Silverlight客户端创建这样的:

 BasicHttpBinding basicHttpBinding = new BasicHttpBinding(); 

     basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport; 

     var serviceClient = new ImportServiceClient(basicHttpBinding, serviceAddress); 

服务地址ofcourse开始以https:// 而Silverlight客户端报告这个错误:

所提供的URI方案的 'https'是无效的;预计'http'。 参数名:通过

记住,切换回HTTP(和设置安全模式为“TransportCredentialOnly”使一切工作再次

是我想甚至支持如果是这样,应该怎样配置的设置? ?

回答

1

原来那上面的设置没有工作,关键是

basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport; 

在去客户端代码,并

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

在服务端。

不知何故,我正在使用xap文件,而没有在安全模式下进行更改。只要我使用新编译的XAP,它就开始工作。

相关问题