前言
本文使用的是 Office365
授权方式在 控制台应用(.NET Framework)
项目连接 Dynamics CRM。
其实 Microsoft.Xrm.Tooling.Connector
提供了多种授权方式,但就本人项目经验来说,经常使用的应该是以下两种:Office365
和 ClientSecret
。
- 授权方式
Name | Value | Description |
---|---|---|
InvalidConnection | -1 | Invalid connection |
AD | 0 | Active Directory Auth |
Live | 1 | Live Auth |
IFD | 2 | SPLA Auth |
Claims | 3 | CLAIMS based Auth |
Office365 | 4 | Office365 base login process |
OAuth | 5 | OAuth based Auth |
Certificate | 6 | Certificate based Auth |
ClientSecret | 7 | Client Id + Secret Auth type. |
ExternalTokenManagement | 99 | Enabled Host to manage Auth token for CRM connections. |
如果你想使用 ClientSecret
授权方式进行连接,请移步到这篇文章:
新建项目
打开 Visual Studio 并创建一个新的 控制台应用(.NET Framework)
项目

输入一个有意义的项目名称 –> 选择框架后 –> 单击 “创建”

项目已经准备就绪,接下来为项目添加依赖包。
添加依赖包
需要添加两个依赖包:
Microsoft.CrmSdk.CoreAssemblies
System.Configuration.ConfigurationManage
右键单击你的项目 –> 管理 NuGet 程序包

在新窗口中,选择 “浏览” 选项卡并搜索 Microsoft.CrmSdk.CoreAssemblies

在结果中,选择 Microsoft.CrmSdk.CoreAssemblies
并在右侧单击 安装 按钮,在弹出的窗口中点击 “接受”。
现在 Microsoft.CrmSdk.CoreAssemblies
依赖包已经安装好了,接下来对 System.Configuration.ConfigurationManage
执行同样的操作。
下一步将添加代码访问 CRM
添加代码
App.config
在 App.config
添加连接信息(connectionStrings
),将以下信息替换为你的信息
No. | 参数 | 说明 |
---|---|---|
1 | urlofyourdynamics365instance | 访问系统的URL,例:https://xxx.crm.dynamics.com |
2 | yourusername | 你的用户名 |
3 | yourpassword | 你的密码 |

<connectionStrings>
<!-- Dev 环境(Office365 授权方式) -->
<add name="Dev-Office365" connectionString="AuthType=Office365; Url=urlofyourdynamics365instance; Username=yourusername; Password=yourpassword;" />
</connectionStrings>
Program.cs
将顶部的 using
替换为以下内容:
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Tooling.Connector;
using System;
using System.Configuration;
在 Main 方法中,添加以下代码
string connectionStr = ConfigurationManager.ConnectionStrings["Dev-Office365"].ConnectionString;
CrmServiceClient client = new CrmServiceClient(connectionStr);
if (client.IsReady)
{
IOrganizationService orgServiceorgService = client;
// 使用 WhoAmI 进行测试
WhoAmIResponse resTest = (WhoAmIResponse)orgServiceorgService.Execute(new WhoAmIRequest());
Console.Write($"UserId: {resTest.UserId}");
Console.Read();
}
else
{
throw new Exception(client.LastCrmError);
}
测试
右键单击你的项目 –> 设为启动项目

使用 F5
或 点击顶部的 启动
按钮来执行程序
如果一切正常,将打印用户的Id,接下来你可以尝试 CRUD 操作了。

感谢您的耐心阅读!来选个表情,或者留个评论吧!