Web services 在工作站A和工作站B上使用相同的凭据进行模拟授权失败

Web services 在工作站A和工作站B上使用相同的凭据进行模拟授权失败,web-services,authorization,asmx,impersonation,Web Services,Authorization,Asmx,Impersonation,案例1。当我从自己的PC上浏览一个名为JOHNXP(例如,)的小测试站点时,my.aspx页面调用我的ASMX Web服务,并将我的凭据传递给同一域中另一台机器(SERVERTRIM)上的另一个Web服务。我可以看到我的请求导致SERVERTRIM计算机上出现一个带有我的凭据的安全日志条目 案例2。我移动到同一域中的另一台电脑,并使用我在个人桌面上使用的相同凭据登录。当我浏览上面的同一个测试站点时(这次是),我会将其过滤回我的.aspx页面: System.Web.Services.Protoc

案例1。当我从自己的PC上浏览一个名为JOHNXP(例如,)的小测试站点时,my.aspx页面调用我的ASMX Web服务,并将我的凭据传递给同一域中另一台机器(SERVERTRIM)上的另一个Web服务。我可以看到我的请求导致SERVERTRIM计算机上出现一个带有我的凭据的安全日志条目

案例2。我移动到同一域中的另一台电脑,并使用我在个人桌面上使用的相同凭据登录。当我浏览上面的同一个测试站点时(这次是),我会将其过滤回我的.aspx页面:

System.Web.Services.Protocols.SoapException:服务器无法处理请求。-->System.Net.WebException:请求失败,HTTP状态为401:未经授权

查看SERVERTRIM上的安全日志,我注意到案例2中的访问导致匿名登录,这似乎可以解释401/Unauthorized的原因

当我的WS在不同的服务器上调用供应商的Web服务时,我试图让我的Web服务使用登录域用户的凭据

我的ASMX Web服务在我的桌面上运行(IIS 5.1 WinXP Pro-机器名为JOHNXP)。我在涉及的每台服务器中都启用了匿名取消选中,并且在我的场景中涉及的每一个web.config中都有此选项:

供应商Web服务在SERVERTRIM(Win 2003 Server)上运行,它也是ASMX,使用WSE 3.0


Wireshark和Netmon现在看起来对我来说太可怕了。我认为“远程”服务器(SERVERTRIM)上不同的登录结果足以作为“证据”。上面所有的机器都在同一个域中,但是如果可能的话,我想在SERVERTRIM上保留“远程”Web服务,在同一个域中的不同服务器上保留我的中间Web服务。这种情况是否要求我深入研究“授权”?在域中的另一台计算机上启动web请求时,监视相同凭据导致匿名登录的最简单工具是什么

我对身份验证的了解有点模糊,但如果我正确理解了您的描述:

  • 在第一种情况下,您浏览到localhost,它模拟调用者,然后在另一台机器上调用web服务。模拟与客户端在同一台计算机上进行。我相信在这种情况下,模拟应用程序不需要位于受信任的委托机器上(因为它已经是与客户机相同的机器)

  • >P>第二种情况下,你正在浏览一个<强>不同的<强> PC,它试图在调用第三个PC时模拟调用方。在这种情况下,中间的PC需要信任委托(如果它是一个开发工作站,它可能不是)。


乔,我认为你描述得对。“中间的PC”名称为JOHNXP,并已标记为“委托信任计算机”。另外,在我以CBMIWEB\johna的身份登录时,在JOHNXP上运行的Web服务从VisualStudio2005开始。当委托文档说“配置服务器进程运行所使用的用户帐户”时,我认为这意味着CBMIWEB\johna和ActiveDirectoy现在已选中“委托的帐户受信任”。我已经测试了两种方法,但仍然失败。当你说从VS2005启动WS时,你是指Cassini服务器还是IIS?如果IIS确实是在域帐户下运行的?