如何将用户的身份从一个IIS中托管的Web应用程序传递到另一个IIS中托管的Web服务?

时间:2013-01-24 08:16:40

标签: asp.net wcf iis impersonation windows-integrated-auth

我在IIS 6.0计算机上Windows Server 2003 R2托管了一个Web应用程序(在ASP.net 4.0中开发)。此Web应用程序已启用Integrated Windows Authentication

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

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

因此,对于在不同计算机上的单独IIS中托管的网络应用,Integrated Windows Authentication可以独立运行。

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

我不希望我的网络服务负责对用户进行身份验证。它会使用简单的basicHttpBinding。它只会使用CurrentPrincipalHttpContext等来读取用户的名称。验证用户的身份应仅由IIS完成。

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

1 个答案:

答案 0 :(得分:1)

您需要设置kerberos委派,因为默认情况下不会将身份传递给其他计算机。

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