前言
本文演示如何使用 ClientSecret(客户端密钥) 授权方式,在 .NET Framework 控制台应用 中连接 Dynamics 365。
连接主要使用的是Microsoft.Xrm.Tooling.Connector包,这个包提供了多种身份认证方式,但从我的项目经验来看,最常用主要是以下两种:
- Office365(用户名 + 密码)
- ClientSecret(应用程序 + 密钥)
Microsoft.Xrm.Tooling 支持的授权方式一览
| 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 + Client Secret Auth |
| ExternalTokenManagement | 99 | Host managed token |
详细步骤
先决条件
默认你拥有 管理员权限,否则无法访问 Azure Active Directory / Entra ID 相关配置。
一、获取 ClientId 和 ClientSecret
Step 1. 注册应用
(1)访问并登录 Azure Portal.
- 国际版:Azure Portal
- 世纪互联版:Azure Portal
(2)在顶部搜索框中输入 “应用注册”,并点击进入

(3)点击 “新注册”

(4)填写:
- 应用名称
- 选择受支持的账户类型
- 点击 “注册”

Step 2. 获取 ClientId
完成应用注册后,在 “概览(Overview)” 页面中可以看到:
应用程序(客户端)ID → 即 ClientId,请将该值复制并保存,后续配置会用到

Step 3. 创建 ClientSecret
- 打开 “证书和密码”
- 选择 客户端密码
- 点击 “+ 新客户端密码”
- 填写描述并设置有效期
- 点击 “添加”
- 创建完成后,请立即复制 ClientSecret 的“值”并保存
注意:页面刷新后该值将被隐藏,若未保存只能删除后重新创建。


二、在 Power Platform 中添加应用程序用户
接下来需要将刚创建的应用,与 D365 环境关联。
- 登录 Power Platform 管理中心
- 选择目标环境 → 设置
- 进入 “应用程序用户”
- 点击 “+ 新建应用用户
配置项说明:
- 应用:选择刚才在 Azure 中注册的应用
- 业务部门:建议选择 根业务部门
- 安全角色:至少分配 系统管理员
完成后点击 创建。

三、创建 .NET 控制台应用进行测试
Step 1. 新建控制台项目
- 打开 Visual Studio
- 创建 控制台应用(.NET Framework)
- 输入项目名称并选择目标框架
- 点击 创建


Step 2. 安装必要的 NuGet 包
为项目安装以下依赖:
Microsoft.CrmSdk.CoreAssembliesSystem.Configuration.ConfigurationManage
操作路径:
项目 → 右键 → 管理 NuGet 程序包 → 浏览 → 搜索 → 安装


Step 3. 配置 App.config 连接字符串
在 App.config 中添加以下内容,并替换为你自己的参数:
<connectionStrings>
<!-- Dev 环境(ClientSecret 认证方式) -->
<add name="Dev-ClientSecret" connectionString="
Url=https://xxx.crm.dynamics.cn/;
AuthType=ClientSecret;
ClientId=yourClientId;
ClientSecret=yourClientSecret;" />
</connectionStrings>
参数说明:
- Url:D365 环境访问地址
- ClientId:应用程序 ID
- ClientSecret:客户端密钥

Step 4. 添加测试代码
在 Program.cs 中:
引用命名空间
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-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);
}

Step 5. 运行并验证
- 将当前项目设为 启动项目
- 使用
F5 或点击 启动 - 如果程序成功输出 UserId,说明:
- ✅ ClientSecret 认证成功
- ✅ 已成功连接 Dynamics 365
- ✅ 可继续使用
IOrganizationService进行 CRUD 操作



如果本文对你有所帮助,可以请我喝杯咖啡
(完)