c# – HTTP请求是未经授权的客户端认证方案’Ntlm’
在调用Web服务时,会收到以下错误信息:
我有一个Silverlight 4应用程序调用一个WCF Web服务,在我的IIS(7)上. 当Silverlight客户端从服务器使用http:// localhost / MySiteName打开应用程序时,一切正常.但是当Silverlight客户端从不同的客户机(不是服务器但仍在同一个域中)打开应用程序时,使用http:// MyServerName / MySiteName然后我得到错误. Windows身份验证在我的IIS中启用. 调用我的WCF Web服务的绑定配置是: <binding name="winAuthBasicHttpBinding"> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows" /> </security> </binding> 调用ASMX Web服务的绑定配置是: <binding name="ClNtlmBinding"> <security mode="TransportCredentialOnly"> <transport clientCredentialType="Ntlm" /> </security> </binding> 解决方法
好的,这些都是想到的事情:
>您可能在IIS上运行的WCF服务必须在具有调用Web Service的权限的安全上下文中运行.您需要在具有域用户的用户(理想情况下是专用用户)的应用程序池中确保. 好的,假冒一些话.基本上这是一个已知的问题,您不能使用您到一台服务器的模拟令牌,传递给另一台服务器.原因似乎是令牌是使用用户密码的一种哈希,并且对于由此产生的机器是有效的,因此它不能从中间服务器使用. UPDATE 根据WCF(即从服务器转发模拟到另一台服务器),授权是可能的.看这个话题here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |