单个IIS服务器(Windows 2003 6)。此服务器在IIS中有几个不同的“网站”设置。在IIS中,每个站点都配置了一个不同的主机头(端口80)。此外,每个站点也可以通过指定的端口号(没有主机头)进行访问。
例如:
http://apps.mysite1.com
http://myserver:xxxx
我的网站2:
http://something.mysite2.com
或
http://myserver:yyyy
我有一个ASP.NET一个IIS站点(mysite1)和ASP.NET另一个IIS站点(mysite2)中的2.0 Web服务。网站使用与以下类似的代码与web服务通信:
MyWebService svc = new MyWebService();
//also have tried "http://myserver:yyyy/MyWebService.asmx" below
svc.Url = "http://something.mysite2.com/MyWebService.asmx";
svc.Credentials = System.Net.CredentialCache.DefaultCredentials;
svc.MyMethod();
所有站点都配置为Windows集成安全和ASP.NET配置为使用<identity impersonate=“true”/>进行Windows身份验证;。安全模型规定,登录到web应用程序的用户应该通过身份验证,一直到web服务(然后再到底层数据库,但这在这里不一定相关)。
我可以很好地工作,但是我重新构建了我的Web服务(新方法),现在一切都不起作用了,任何Web服务调用都以401未经授权的消息结尾。
听起来确实像是个双跳问题。我相信这和web服务不接受正在传递的凭证和对新凭证的挑战有关。只是不知道如何确认。不知道为什么会有问题-我以计算机/域管理员身份登录,并且IE配置为在“Internet选项”>“安全”选项卡>“自定义级别”>“Intranet区域中自动登录”中传递凭据。是的,相关站点被添加到我的“内部网区域”。
蒂娅!