我有以下设置:
WPF客户端调用WCF SerivceA。这里我使用基本HTTP绑定进行Windows身份验证。
SerivceA将从一个UNC路径调用一个批处理文件(.bat或您可以说.exe文件)。这有效。批处理因此exe内部调用它执行。
执行的exe现在调用ServiceB。在这里,它失败了。错误是: HTTP请求未经授权使用客户端身份验证方案“Negotiate”。从服务器收到的身份验证标头是“Negotiate”。
这似乎exectued exe无法通过AD用户帐户。它通过以下: IIS APPPOOL \ user1,它不是AD用户,这就是它失败的原因。
为了解决这个问题,我尝试在ServiceA上进行模拟,因此我可以在调用者的凭据下调用批处理文件。但没有运气。我也试过了代表团。
这里有什么问题?
答案 0 :(得分:0)
您没有解释您执行委派或模拟的IPrincipal,但只有在为其配置了相关服务器时才能使用委托,否则它只接受执行请求的最小权限帐户。
答案 1 :(得分:0)
我最终为IIS创建了一个特定用户并将其注册为应用程序池。所以现在默认情况下,这样的操作是在这个用户的身份下完成的,一切正常。