我有这个设置,在使用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”会使一切正常运行。
我想要的设置是否支持?如果是这样,应该如何配置?
答案 0 :(得分:1)
事实证明上述设置确实有效。关键是
basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport;
在客户端代码中,
<binding name="silverlightBinding" maxReceivedMessageSize="10485760">
<security mode="Transport">
<transport clientCredentialType="Windows"/>
</security>
</binding>
在服务端。
不知怎的,我正在使用xap文件而没有安全模式的更改。我一使用新编译的xap就开始工作了。