3

我有一个托管在机器上的 Web 应用程序(在 ASP.net 4.0 中开发IIS 6.0Windows Server 2003 R2Integrated Windows Authentication已为此 Web 应用程序打开。

我在IIS 7.5机器上托管了一个 Web 服务(使用 WCF 开发) Windows Server 2008 R2。'Windows Authentication也为此 Web 应用程序启用。

  • 我使用我的 Windows 域帐户登录到我的本地计算机。当我浏览 Web 应用程序时,它会询问我的域用户名和密码。在网络应用程序中,我正确地获得了我的身份。
  • 在我的机器上(使用其他一些 Winform 应用程序),如果我调用相同的 Web 应用程序(Web 服务的),服务代码将以我的 Windows 身份执行。

因此Integrated Windows Authentication,对于托管在不同机器上的不同 IIS 中的 Web 应用程序,它们都可以独立工作。

当从我的本地计算机浏览 Web 应用程序并且网页在内部调用该服务时,就会出现问题。在这种情况下,“服务没有在我的 Windows 身份下运行”正如预期的那样。它可以在 asp.net Web 应用程序或 Web 服务的 Web 应用程序的应用程序池的标识下运行。

我不希望我的 Web 服务负责对用户进行身份验证。它会使用简单的basicHttpBinding. 它只会读取使用CurrentPrincipalHttpContext等的用户名。验证用户的身份只能由 IIS 完成。

有人可以帮我将我的 Windows 身份从一个 IIS 传递到另一个吗?

4

1 回答 1

1

您需要设置 kerberos 委托,因为默认情况下不会将身份传递给另一台机器。

http://blogs.technet.com/b/askds/archive/2008/11/25/fun-with-the-kerberos-delegation-web-site.aspx

于 2013-01-30T05:39:49.290 回答