Skip to content
Donghai's Blog
Go back

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

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

TIP

我在另外一篇文章讲了 ClientSecret 授权方式,有兴趣的话可以看看:

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

Table of contents

Open Table of contents

前言

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

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

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

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

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

新建项目-02

Step 2. 添加NuGet包

为项目安装以下依赖:

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

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

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

为项目添加依赖包-01

浏览 —> 搜索 —> 安装

为项目添加依赖包-02

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

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

 <connectionStrings>
  <!-- Dev 环境(Office365 认证方式) -->
  <add name="Dev-Office365"
     connectionString="AuthType=Office365;
     Url=urlofyourdynamics365instance;
     Username=yourusername;
     Password=yourpassword;" />
 </connectionStrings>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;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. 运行

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

设当前项目为启动项目

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

启动测试项目

  1. 如果程序成功输出 UserId,说明:

打印用户的Id


Share this post on:

Previous Post
使用 ClientSecret 授权方式 在 .NET 控制台应用中连接 Dynamics 365
Next Post
我常用的插件注释模板(Dynamics 365)
BlogsClub Meo Forever Blog