2012-04-26 80 views
0

我写代码的应用程序是由C#形式application.crm与SSL运行的书面认证。C#CRM 2011呼叫者服务不

 ClientCredentials credential = new ClientCredentials(); 
     credential.Windows.ClientCredential = new 
     System.Net.NetworkCredential("username", "password", "domain"); 
     Uri organizationUri = new Uri("https://serverAdress/Orgname/XRMServices/2011/Organization.svc"); 
     Uri homeRealUri = null; 
     serviceProxy = new OrganizationServiceProx 
(organizationUri, homeRealUri, credential, null); 
           serviceProxy.EnableProxyTypes(); 

而且我也试过tihs版本。

> ClientCredentials Credentials = new ClientCredentials(); 
>  Credentials.Windows.ClientCredential.UserName ="<username>"; 
>  Credentials.Windows.ClientCredential.Password ="<password>"; 

它不抛出任何异常,但serviceProxy无法验证。如何解决? 任何建议。

+0

您的用户是否拥有应用程序级权限? – 2012-04-26 15:53:30

+2

我知道它可能在这里显而易见,但是您试图连接到CRM服务的用户实际上是CRM用户(例如在同一个域中),且具有正确的权限?就如何连接到CRM服务而言,上面的代码看起来不错。 – 2012-04-26 15:58:22

+0

@ PhilipRich,该应用程序在服务器上安装的crm上运行,用户具有管理权限。 – engcmreng 2012-04-26 19:50:04

回答

0

老问题,但这里是我的建议。

看看示例代码这里提供:http://msdn.microsoft.com/en-us/library/hh675404.aspx

只需更改以下条目,以满足您的需求

private String _discoveryServiceAddress = "https://dev.crm.dynamics.com/XRMServices/2011/Discovery.svc"; 
    private String _organizationUniqueName = "OrganizationUniqueName"; 
    // Provide your user name and password. 
    private String _userName = "[email protected]"; 
    private String _password = "password"; 

    // Provide domain name for the On-Premises org. 
    private String _domain = "mydomain"; 

和控制台应用程序应该打印出来:登录的用户是“名字” “姓”。然后你可以从组织服务代理:

using (OrganizationServiceProxy organizationProxy = 
       GetProxy<IOrganizationService, OrganizationServiceProxy>(orgServiceManagement, credentials)) 

并使用它。