前言

本文演示如何使用 Office365 授权方式 授权方式,在 .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

详细步骤

1. 创建控制台应用程序进行测试

Step 1. 新建项目

  • 打开 Visual Studio
  • 创建新项目,选择 “控制台应用(.NET Framework)”
  • 输入项目名称,选择 .NET Framework 版本
  • 点击"创建"

新建项目-01

新建项目-02

Step 2. 添加必要的NuGet包

为项目安装以下依赖:

  1. Microsoft.CrmSdk.CoreAssemblies
  2. System.Configuration.ConfigurationManage

操作路径:

项目 → 右键 → 管理 NuGet 程序包 → 浏览 → 搜索 → 安装

为项目添加依赖包-01

为项目添加依赖包-02

Step 3. 为 App.config 文件添加连接信息

在 App.config 文件中添加连接字符串配置:

  • 打开 App.config 文件
  • 节点下添加
  • 替换以下占位符为实际值:
 <connectionStrings>
  <!-- Dev 环境(Office365 认证方式) -->
  <add name="Dev-Office365" 
     connectionString="AuthType=Office365; 
     Url=urlofyourdynamics365instance; 
     Username=yourusername; 
     Password=yourpassword;" /> 
 </connectionStrings>

需要替换的值:

  • https://xxx.crm.dynamics.cn/ → 您的Dynamics 365环境URL
  • yourusername → 登录用户名(通常是邮箱地址)
  • yourpassword → 登录密码

为 App.config 文件添加连接信息

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 操作

设当前项目为启动项目

启动测试项目

打印用户的Id

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

(完)