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

问题描述 投票:2回答:1

我在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也为此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传递到另一个IIS吗?

asp.net wcf iis windows-authentication impersonation
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.