繁体   English   中英

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

[英]How to pass on user's identity from web application hosted in one IIS to the web service hosted in another IIS?

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

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

  • 我使用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吗?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM