使用 Office365 授权方式 在 .NET 控制台应用中连接 Dynamics 365

525 字
3 分钟
使用 Office365 授权方式 在 .NET 控制台应用中连接 Dynamics 365

前言#

本文演示如何使用 Office365 授权方式,在 .NET Framework 控制台应用中连接 Dynamics 365

Microsoft.Xrm.Tooling 支持的授权方式一览#

连接主要使用的是 Microsoft.Xrm.Tooling.Connector 包,这个包提供了多种身份认证方式,但是根据我的实施经验,目前最常用的是以下2种认证方式

  • Office365(用户名 + 密码)
  • ClientSecret(应用程序 + 密钥)
NameValueDescription
Office3654Office365 base login process
ClientSecret7Client Id + Client Secret Auth
InvalidConnection-1Invalid connection
AD0Active Directory Auth
Live1Live Auth
IFD2SPLA Auth
Claims3CLAIMS based Auth
OAuth5OAuth based Auth
Certificate6Certificate based Auth
ExternalTokenManagement99Host managed token

详细步骤#

Step 1. 创建控制台应用程序#

打开 Visual Studio —> 创建新项目,选择 “控制台应用(.NET Framework)”

新建项目-01
新建项目-01

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

新建项目-02
新建项目-02

Step 2. 添加NuGet包#

为项目安装以下依赖:

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

下面是具体的操作步骤说明和截图:

项目 —> 右键 —> 管理 NuGet 程序包 —>

为项目添加依赖包-01
为项目添加依赖包-01

浏览 —> 搜索 —> 安装

为项目添加依赖包-02
为项目添加依赖包-02

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>

需要替换的值:

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

为 App.config 文件添加连接信息
为 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. 运行#

  1. 将当前项目设为 启动项目

设当前项目为启动项目
设当前项目为启动项目

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

启动测试项目
启动测试项目

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

打印用户的Id
打印用户的Id

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
使用 Office365 授权方式 在 .NET 控制台应用中连接 Dynamics 365
https://mgrowup.com/posts/dynamics365/console-app-office365-auth/
作者
Donghai
发布于
2022-02-25
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Donghai
Hello, I'm Donghai.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
62
分类
9
标签
37
总字数
76,949
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0