如何通过windows认证

How to pass through windows authentication

。我在 windows 域中有一个服务器。在该服务器中安装了 IIS 7.5。 IIS 为启用了 NTLM windows 身份验证和模拟的 Web 应用程序提供请求。应用程序池是独立的,有 2.0 版本。应用程序具有单页前端部分。所以用户进入前端部分,输入凭据并使用它。当然,这里没有什么特别的。

最近我又添加了一项 Web 服务,该服务也由 IIS 在另一个端口上的 4.0 版独立应用程序池中托管。 我需要的是 - 通过 Ajax 从第一个应用程序向这个新应用程序发送请求,通过 windows 身份验证。当然 - 无需额外提示。 这个想法是 - 第一个应用程序的前端应该通过 jquery ajax 向这个新应用程序发送请求,传递凭据。

在没有 SSO 等的情况下实现它的建议是什么? 我应该寻找类似反向代理的东西还是更明显的东西?

提前致谢。

好的。我会把我自己的答案放在这里。 因此,NTLM 的工作原理非常清晰。这就是为什么要问这些问题。 结果 - 使用 NTLM 在不同的网络应用程序上实现传递 - 是不可能的。由于 NTLM 的工作方式和 double-hop 问题 (http://blogs.msdn.com/b/knowledgecast/archive/2007/01/31/the-double-hop-problem.aspx)

最后我想出了这样的解决方案: - 在单独的 .NET 4 应用程序池中创建了 child 应用程序。 - 将所有请求从 parent 发送到那个 child。 当然,在这种情况下,身份验证是毫无问题地通过的。

这里唯一的一个问题与两个服务必须存在于一个 IIS 服务器中并具有这种 parent-child 关系这一事实有关。