我制作了一个访问 CRM 网络服务的应用程序。问题是,当我将 dll 部署到 Sharepoint 服务器时,它返回错误 401 未经授权。显然 System.Net.CredentialCache.DefaultCredentials 不起作用(我的怀疑)。这是代码。
CrmSdk.CrmAuthenticationToken token = new CrmSdk.CrmAuthenticationToken();
token.AuthenticationType = AuthenticationType.AD;
token.OrganizationName = ORGANIZATION_NAME;
CrmService service = new CrmService();
service.Url = "http://crmserver:5555/mscrmservices/2007/crmservice.asmx";
service.CrmAuthenticationTokenValue = token;
service.PreAuthenticate = true;
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
反之亦然。
当我制作访问 Sharepoint 的 web 服务(对插件进行编码)并将其部署到 CRM 服务器的应用程序时。它无法访问 Sharepoint 的网络服务。未经授权的错误。这是代码:
Lists listService = new Lists();
listService.PreAuthenticate = true;
listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
listService.Url = "http://sharepointserver/webname/_vti_bin/Lists.asmx";
我的 CRM 服务器和 Sharepoint 服务器在同一个域中。
对于这两个代码,如果我将凭据部分更改为类似的内容,然后将其部署到服务器上,它就可以运行。
service.Credentials = new NetworkCredential("username", "password", "domain");
不过,我不想这样做,因为它会在代码中显示用户的密码。有人可以帮助我吗?
两台服务器中的 IIS 都不允许匿名访问,它使用集成 Windows 身份验证。
谢谢
从我的本地计算机上,我可以访问 CRM Web 服务或 Sharepoint Web 服务。我想我已获得授权,因为 DefaultCredentials 发送了我的凭据,其密码保存在“存储的用户名和密码”(控制面板>用户帐户>选项卡高级>管理密码)这样,我不必输入:
service.Credentials = new NetworkCredential("username", "password", "domain");
并且我本地 comp 中的 DefaultCredentials 被授权访问 Web 服务。
我试图在访问 CRM Web 服务的 Sharepoint 服务器上实现这一点。和..tadaa..它不会工作。哈哈哈。。
我们可以将凭据注入服务器中的 DefaultCredentials 吗?
我想做的最后一件事是硬编码用户帐户(如上面的代码)