如何使用 C# 连接到 Dynamics CRM?

How to connect to dynamics crm with c#?

Office365 身份验证类型和 OrganizationServiceProxy 连接现已弃用 Link,哪种变体最适合在 dynamics 365 Online 和 c# 之间创建连接。 有没有例子。

您仍然可以使用 AD 中的服务帐户或通过 OAuth 以及通过 CRMServiceClient 的连接。

在 web.config

中创建一个连接字符串
 <add key="Dynamics365Test" value="AuthType=AD;Domain=domain;Username=domain\xxx;Password=XXXXX;Url=https://yourcrm.crm.dynamics.com/"/>

or

  <add name="Dynamics365Test" connectionString="AuthType=OAuth;Username=test@contoso.onmicrosoft.com;Password=passcode;Url=https://yourcrm.crm.dynamics.com;AppId=xxx-12ee-xxxe-aaae-xxx91f45987d;RedirectUri=app://xxx-0C36-4500-8xxx-xxx54F2AC97;TokenCacheStorePath=c:\MyTokenCache;LoginPrompt=Auto"/>

我个人建议使用 Azure 应用注册中的 Client Id 和 ClientSecret。 此方法也兼容 .NET Core SDK 包(仍在 Alpha https://www.nuget.org/packages/Microsoft.Powerplatform.Cds.Client/),因为此包不支持用户名和密码身份验证。

你可以在网上找到很多使用Client Id & Client Secret的教程,你可以从这个开始https://blog.magnetismsolutions.com/blog/paulnieuwelaar/2020/04/24/dynamics-365-xrmtooling-connect-with-azure-app-registration-in-c-

我无法使用 OAuth CrmServiceClient 在线连接到 CRM。 每当我尝试超时。我要疯了! 我的测试代码如下。

用户是否需要特定权限或其他什么? (.Net 版本 4.6.2)

using Microsoft.Xrm.Sdk;

使用Microsoft.Xrm.Tooling.Connector; 使用系统;

public 部分 class c2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {

    string ConnectionString = "AuthType=OAuth;Username=xxx@xxx.com;Password=xxx;Url=https://xxx.crm4.dynamics.com;AppId=51f81489-12ee-4a9e-aaae-a2591f45987d;RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97;LoginPrompt=Never";

    CrmServiceClient svc = new CrmServiceClient(ConnectionString);

    if (svc.IsReady)
    {
        var myContact = new Entity("contact");
        myContact.Attributes["lastname"] = "Test";
        myContact.Attributes["firstname"] = "User1";
        svc.Create(myContact);
    }
}

}