案例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服务保留在同一域中的不同服务器上。这种情况是否要求我必须深入“授权”?当网络请求在域中的另一台计算机上启动时,监控为什么相同凭据导致匿名登录的最简单工具是什么?
乔,我想你已经正确描述了它。 “中间的PC”名称是JOHNXP,并且已标记为“委托信任计算机”。此外,运行在JOHNXP上的webservice从VisualStudio2005启动,而我以CBMIWEB \ johna的身份登录。当代理文档称“配置运行服务器进程的用户帐户”时,我将其表示为CBMIWEB \ johna,并且ActiveDirectoy现在已检查“Account was trusted for delegation”。我已经测试了两种方法,但仍然失败。 – 2009-04-23 18:36:19