0

我有以下设置:

  1. WPF 客户端调用 WCF SerivceA。在这里,我使用基本 HTTP 绑定进行 Windows 身份验证。

  2. SerivceA 将从一个 UNC 路径调用一个批处理文件(.bat 或您可以说是 .exe 文件)。这行得通。批处理,因此在其内部调用的 exe 执行。

  3. 执行的 exe 现在调用 ServiceB。在这里,它失败了。错误是:HTTP 请求未经客户端身份验证方案“协商”授权。从服务器收到的身份验证标头是“协商”。

这似乎执行的 exe 无法通过 AD 用户帐户。它通过以下: IIS APPPOOL\user1 不是 AD 用户,这就是它失败的原因。

为了解决这个问题,我尝试在 ServiceA 进行模拟,这样我就可以在调用者的凭据下调用批处理文件。但没有运气。我也尝试过委托。

这里有什么问题?

4

2 回答 2

0

我最终为 IIS 创建了一个特定用户并将其注册到应用程序池。所以现在默认情况下,这些操作都是在这个用户的身份下完成的,一切正常。

于 2012-11-28T10:26:47.463 回答
0

您没有解释您是从哪个 IPrincipal 进行委派或模拟的,但只有在服务器正确配置的情况下才能使用委派,否则它将只接受执行请求的最低权限帐户。

于 2012-11-23T13:21:35.153 回答