2009-04-22 22 views
0

案例1.当我从我自己的PC上浏览一个名为JOHNXP的小测试站点时(例如http://localhost/WebClient),我的.aspx页面调用我的ASMX webservice获取我的证书并将其传递给他们通过同一个域中的另一台计算机(SERVERTRIM)上的另一个web服务。我可以看到我的请求导致SERVERTRIM计算机上的安全日志条目和我的凭据。模拟在工作站A和B上使用相同证书授权失败

案例2.我移动到同一个域中的另一台PC,并使用我在个人桌面上使用的相同凭据登录。当我浏览上面的同一个测试网站(此时为http://johnxp/WebClient)时,我将此过滤回到我的.aspx页面:

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

查看SERVERTRIM上的安全日志,我注意到情况2中的访问导致了ANONYMOUS LOGON,这似乎解释了401 /未经授权。

我想让我的web服务使用登录的DOMAIN用户的凭据,当我的WS在不同的服务器上调用供应商的web服务时。

我的ASMX webservice运行在我的桌面上(IIS 5.1 WinXP Pro - 机器名称是JOHNXP)。我有启用匿名UNCHECKED在每一个参与的服务器和我有这个在每个参与我的情况的web.config:

供应商的web服务上SERVERTRIM(运2003服务器)上运行,这也是ASMX和使用WSE 3.0 。

Wireshark和Netmon现在看起来对于我来说太强大了。我计算出“远程”服务器(SERVERTRIM)上产生的不同LOGON是足够的“证据”。上述所有机器都在同一个域中,但我希望在SERVERTRIM上保留“远程”Web服务,并且如果可能,我将中间Web服务保留在同一域中的不同服务器上。这种情况是否要求我必须深入“授权”?当网络请求在域中的另一台计算机上启动时,监控为什么相同凭据导致匿名登录的最简单工具是什么?

回答

0

我的认证知识是有点朦胧,但如果我理解正确的话你的描述:在第一种情况下

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

  • 在第二种情况下,您正在浏览到不同的 PC,它在尝试在呼叫第三台PC时模拟呼叫者。在这种情况下,中间的个人电脑需要信任委派(如果它是一个开发工作站,这可能不会)。

+0

乔,我想你已经正确描述了它。 “中间的PC”名称是JOHNXP,并且已标记为“委托信任计算机”。此外,运行在JOHNXP上的webservice从VisualStudio2005启动,而我以CBMIWEB \ johna的身份登录。当代理文档称“配置运行服务器进程的用户帐户”时,我将其表示为CBMIWEB \ johna,并且ActiveDirectoy现在已检查“Account was trusted for delegation”。我已经测试了两种方法,但仍然失败。 – 2009-04-23 18:36:19

相关问题