我在从 Web 应用程序中调用 Web 服务时遇到了一些问题,我希望这里的人能够提供帮助。据我所知,这似乎与 Kerberos双跳问题有关。但是,如果是这样,我不确定该怎么做才能真正解决问题。为了让事情变得更难,我没有适当的权限来更改 Active Directory 帐户,因此我需要知道在请求更改时要求什么。在我的情况下,我需要将凭据(集成 Windows 身份验证)从 Web 应用程序传递到后端 Web 服务,以便 Web 服务在正确的用户上下文下运行。
这是我的确切问题:
这有效
这不起作用
工作场景和非工作场景之间的唯一区别是工作场景在本地主机上运行应用程序(无论是开发人员的 PC 还是在相关服务器上),而非工作示例在另一台机器上运行。两种场景之间的代码完全相同。
我试过的
- 将 SPN 添加到为每个服务器运行应用程序池的域帐户
setspn -a http/server1 DOMAIN\account
- 不同的模仿方法
- 删除模拟代码
using(...)
并作为应用程序池帐户执行 Web 服务调用。这按预期工作。
有没有人知道我可以做些什么来解决这个问题?