在我的机器上(win server 2003),我有一个ASP.Net Web应用程序,它调用另一台服务器上的ASP.Net Web服务(也是一个win 2003服务器)。 Web应用程序设置为模拟并使用Windows身份validation。 Web服务被设置为需要Windows身份validation。 asmx文件通过web.config中的configuration被限制到特定的Active Directory组。
Web应用程序调用Web服务并传递默认凭据。 当Web应用程序和Web服务都在我的机器上时,这一切都可以正常工作,但是当我将Web服务移动到单独的服务器时,我得到一个401,而IIS日志不会显示用户,这意味着凭据不会传递正常。
有什么我需要configuration,以允许从我的Web应用程序传递到另一台服务器的凭据?
对于一个ASP.NET应用程序,如果你设置了模拟=“真”,那么它将运行在经过validation的用户“最”的东西。 因此,如果您在Web应用程序中提示input用户名/密码,则启用模拟function后,这些凭据将传递到Web服务。
但是,你会遇到所谓的“双跳问题”。 Windows auth有目的地不允许凭证通过这样的2跳。 这里有一个博客文章,涵盖了可能的解决scheme: http : //weblogs.asp.net/owscott/archive/2008/08/22/iis-windows-authentication-and-the-double-hop-issue.aspx