在调用Web服务时,我收到以下错误:
HTTP请求未经授权使用客户端身份验证方案"NTLM".从服务器收到的身份验证标头是"NTLM".HTTP请求未经授权使用客户端身份验证方案"NTLM".从服务器收到的身份验证标头是"NTLM".
我有一个Silverlight 4应用程序,它在我的IIS(7)上调用WCF Web服务.我的WCF Web服务使用NTLM(Windows身份验证)调用安装在不同Web服务器上的另一个ASMX Web服务.我的服务器和托管ASMX Web服务的服务器都位于同一个域中.
当Silverlight客户端从服务器打开应用程序时,http://localhost/MySiteName一切正常.但是当Silverlight客户端从不同的客户端(不是服务器但仍在同一个域中)打开应用程序时,使用http://MyServerName/MySiteName然后我得到错误.
我的IIS中启用了Windows身份验证.我的IIS中禁用了匿名身份验证.
用于调用我的WCF Web服务的绑定配置是:
<binding name="winAuthBasicHttpBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
Run Code Online (Sandbox Code Playgroud)
用于调用ASMX Web服务的绑定配置是:
<binding name="ClNtlmBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
</binding>
Run Code Online (Sandbox Code Playgroud) 我正在托管一个输出jsonp的wcf服务.IIS的响应(启用了Windows身份验证)是
经过身份验证的服务不支持跨域javascript回调.
有办法解决这个问题吗?我必须打开Windows身份验证,但也想使用wcf来服务我的jsonp
我的网络配置如下
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" >
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm"/>
</security>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="ServiceSite.CustomersService">
<endpoint address="" binding="webHttpBinding"
bindingConfiguration="webHttpBindingWithJsonP" contract="ServiceSite.CustomersService"
behaviorConfiguration="webHttpBehavior"/>
</service>
</services>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)