我正在使用以下形式的NetworkCredential构造函数在调用需要特定标识的Web服务之前设置显式凭据:
myWebService.Credentials = new System.Net.NetworkCredential(userName, password, domain);
这在我们的IIS 6.0开发和IIS 7.5登台环境中运行良好,其中各种服务器是我们域的一部分。
现在,此代码已部署到生产环境中,其中服务器不属于域,但只是WORKGROUP的成员,并且正确的身份验证不起作用。在运行时,这种有效的替换失败了:
myWebService.Credentials = new System.Net.NetworkCredential("localuserName", "XyZ!XyZ", "myServerName");
我无法完全访问这些不同的工作组计算机,并且配置了所有内容的系统管理员似乎已正确设置了本地帐户和应用程序池。
因此,总之,只需使用服务器的名称而不是域名,可以使用上述技术继续在WORKGROUP中工作吗?如果代码在任何一种情况下都有效,那么必须有一些其他的配置问题,我将不得不追查有关该问题的更多信息。
答案 0 :(得分:0)
i'm using iis 7 and there is no problem with following:
1. find the ip address of machine which is running IIS and
find webservice bindings the bindings in IIS is like the following http://192.368.228.1:8051/
2. set domain like this : http://servername:port/ or http://machine-ip:port/
also you can set webservice url like the following
myWebService.Url ="http://192.368.228.1:8051/service1.asmx";
myWebService.Credentials = new System.Net.NetworkCredential("user", "pass");
no domain is used in this way.
有关此主题的更多信息,请查看以下链接 本节:将身份验证凭据传递给Web服务
http://msdn.microsoft.com/en-us/library/ff649362.aspx#secnetch10_usingclientcertificates
希望这可能有所帮助。