本文演示如何使用 Office365 授权方式,在 .NET Framework 控制台应用中连接 Dynamics 365
Table of contents
Open Table of contents
前言
本文演示如何使用 Office365 授权方式,在 .NET Framework 控制台应用中连接 Dynamics 365
Microsoft.Xrm.Tooling 支持的授权方式一览
连接主要使用的是 Microsoft.Xrm.Tooling.Connector 包,这个包提供了多种身份认证方式,但是根据我的实施经验,目前最常用的是以下2种认证方式
- Office365(用户名 + 密码)
- ClientSecret(应用程序 + 密钥)
| Name | Value | Description |
|---|---|---|
| Office365 | 4 | Office365 base login process |
| ClientSecret | 7 | Client Id + Client Secret Auth |
| InvalidConnection | -1 | Invalid connection |
| AD | 0 | Active Directory Auth |
| Live | 1 | Live Auth |
| IFD | 2 | SPLA Auth |
| Claims | 3 | CLAIMS based Auth |
| OAuth | 5 | OAuth based Auth |
| Certificate | 6 | Certificate based Auth |
| ExternalTokenManagement | 99 | Host managed token |
详细步骤
Step 1. 创建控制台应用程序
打开 Visual Studio —> 创建新项目,选择 “控制台应用(.NET Framework)”

输入项目名称 —> 选择 “.NET Framework 版本” —> 点击 “创建”

Step 2. 添加NuGet包
为项目安装以下依赖:
Microsoft.CrmSdk.CoreAssembliesSystem.Configuration.ConfigurationManage
下面是具体的操作步骤说明和截图:
项目 —> 右键 —> 管理 NuGet 程序包 —>

浏览 —> 搜索 —> 安装

Step 3. 为 App.config 添加连接信息
在 App.config 文件中添加连接字符串配置:
- 打开 App.config 文件
- 在
<configuration>节点下添加<connectionStrings>节 - 替换以下占位符为实际值:
<connectionStrings>
<!-- Dev 环境(Office365 认证方式) -->
<add name="Dev-Office365"
connectionString="AuthType=Office365;
Url=urlofyourdynamics365instance;
Username=yourusername;
Password=yourpassword;" />
</connectionStrings>App.config
需要替换的值:
- https://xxx.crm.dynamics.cn/ → 您的Dynamics 365环境URL
- yourusername → 登录用户名(通常是邮箱地址)
- yourpassword → 登录密码

Step 4. 添加测试代码
在 Program.cs 中:
引用命名空间
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Tooling.Connector;
using System;
using System.Configuration;Program.cs
Main 方法代码
string connectionStr = ConfigurationManager.ConnectionStrings["Dev-ClientSecret"].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);
}Program.cs

Step 5. 运行
- 将当前项目设为 启动项目

- 使用 F5 或点击 “启动” 按钮

- 如果程序成功输出 UserId,说明:
- ClientSecret 认证成功
- 已成功连接 Dynamics 365
- 可继续使用
IOrganizationService进行 CRUD 操作
