我有一个从我的Web应用程序调用的WCF服务。 WCF服务调用在SSL端口443上进行。
当我的应用程序进行调用时,我在日志文件中收到以下错误消息: HTTP请求未经授权使用客户端身份验证方案'Ntlm'。从服务器收到的身份验证标头是“Negotiate,NTLM”
我使用cscript命令检查了我的计算机(IIs 5.1)上的iis身份验证标头和部署了WCF服务的计算机(IIS 6.0):
对于iis 5.1 adsutil set w3svc / 1 / ntauthenticationproviders“Negotiate,NTLM”
Simlilarly,使用以下命令在服务器计算机IIS 6.0上设置了标头: adsutil set w3svc / 1 / root / ntauthenticationproviders“Negotiate,NTLM”
我已多次检查标题,两端的“Negotiate,NTLM”值相同,但我的服务调用失败。
请帮助。
答案 0 :(得分:1)
使用NTLM身份验证时,在呼叫服务器上执行的用户必须在标头内的域内可验证。这意味着您的IIS 5.1计算机必须在域可行用户下运行其IIS实例(应用程序池)。由于应用程序池几乎普遍由本地系统,网络服务或AppPoolService(或类似的系统帐户)运行,其中nome是域可用,因此您需要配置执行调用的IIS实例以由服务运行帐户中具有适当权限的帐户。