在调用需要特定身份的 Web 服务之前,我使用以下形式的 NetworkCredential 构造函数来设置显式凭据:
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 中工作?如果代码在任何一种情况下都可以工作,那么肯定存在其他一些配置问题,我将不得不追查有关该问题的更多信息。