在您的客户端应用程序中使用 XRM tooling 通用登录控件

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

Microsoft Dynamics 365 SDK 给您提供了一个 Microsoft Visual Studio 模板,该模板让您能够在客户端应用程序中使用公共登陆控件。Dynamics 365 身份验证的代码、凭据存取,以及诊断日志都内置在该模板里,以便您可以在您的 Windows 客户端应用程序中迅速对 Dynamics 365 利用这些功能。 公共登录控件是 Microsoft.Xrm.Tooling.CrmConnectControl 的实现,控件类似下图。

XRM Tooling 通用登录控件

本主题内容

必备条件

使用公共登录控件模板创建一个 WPF 应用程序。

给您现有的 WPF 应用程序增加公共登陆控件模板。

必备条件

  • .NET Framework 4.5.2

  • Microsoft Visual Studio 2012、Visual Studio 2013 或 Visual Studio 2015

  • 适用于 Visual Studio 2012Visual Studio 2013Visual Studio 2015 的 NuGet 包管理器

  • 已连接到 Internet,以便您可以在使用项目模板时下载/还原必需的 Nuget 包。

  • 包含公共登陆控件模板的 Visual Studio 的 Microsoft Dynamics 365 SDK 模板。 您可以使用下列方式之一获取模板:

    • 从 Visual Studio 库中下载 CRM SDK 模板,然后双击 CRMSDKTemplates.vsix 文件将此模板安装在 Visual Studio 中。

    • 下载 并提取 Dynamics 365 SDK 包。 模板文件、CRMSDKTemplates.vsix 位于 SDK\Templates 文件夹中。 双击 CRMSDKTemplates.vsix 文件在 Visual Studio 中安装模板。

使用公共登录控件模板创建一个 WPF 应用程序。

这里有一个便捷的利用公共登录控件和底层代码创建一个 Windows Presentation Foundation (WPF) 应用程序的方式,该应用程序用于验证、凭证存储和复用,以及默认跟踪和记录。

  1. 启动 Microsoft Visual Studio 并创建一个新项目。

  2. 在“新项目”对话框中:

    1. 从安装模板列表中,展开“Visual C#”,然后选择“Dynamics 365 SDK 模板”。

    2. 确保 .NET Framework 4.5.2 已选中。

    3. 选择“Dynamics 365 的 WPF 应用程序”。

    4. 指定项目的名称和位置,然后单击“确定”。

    CRM 模板的 WPF 应用程序

  3. 测试项目:

    1. 保存项目,并按 F5 键或单击“调试”>“启动调试”以验证项目是否成功编译。 如果编译成功,您将看到带有“登录到 Dynamics 365”按钮的 MainWindow。 单击该按钮显示公共登陆控件。

    2. 通过提供您的凭据并连接到 Dynamics 365 来测试身份验证,然后单击“登录”。 信息中将显示您的 Dynamics 365 连接状态。

有关使用公共登录控件模板连接到 Dynamics 365 并执行各种操作的示例,请参阅示例:XRM Tooling API 快速入门

给您现有的 WPF 应用程序增加公共登陆控件模板。

如果您已有一个 WPF 客户端应用程序,则您可以轻松将公共登陆控件模板加入其中,利用统一登录体验和底层代码来进行 Dynamics 365 身份验证,凭据存储和复用,以及默认跟踪或记录。 在这种情况下,您必须在现有的客户端应用程序的用户界面中创建一个控件来调用公共登录控件,实例化 Dynamics 365 连接对象的实例,然后使用连接对象执行 Dynamics 365 中的各种操作。

  1. 打开 Visual Studio 中现有的 WPF 应用程序项目。 对于此示例,假定您的 WPF 应用程序项目名称是 SampleWPFApp。

  2. 将公共登录控件模板添加到您的项目中。

    1. 在“解决方案资源管理器”面板中,右键单击该项目名称,然后单击“添加”>“新项目”。

    2. 在“添加新项目”对话框中,从已安装的模板列表中,展开“Visual C#”,然后选择“Dynamics 365 SDK 模板”。 单击“WPF 应用程序的 Dynamics 365 登录表单”并单击“确定”。

      添加公共登录控件模板

  3. 新添加的 CrmLoginForm1.xaml 登录控件显示在 XAML 设计器区域中。 如果它不显示,请在“解决方案资源管理器”窗格中双击 CrmLoginForm1.xaml 文件。

    验证登录控件是否正常显示

  4. 您现在必须调用来自应用程序的新添加的登录控件。 为此,在您的 MainWindow.xaml 文件中添加“按钮”控件,并分别设置名称和内容为“btnSignIn”和“登录到 Dynamics 365”。

    添加控件以调用登录窗体

  5. 双击按钮,为 MainWindow.xaml.cs 文件中的“btnSignIn”按钮的单击事件添加代码。

  6. 在“btnSignIn”按钮的单击事件中增加以下示例代码来调用 CrmLoginForm1 控件,并创建 Dynamics 365 连接对象的实例。

    // Establish the Login control.
    CRMLoginForm1 ctrl = new CRMLoginForm1();
    
    // Wire event to login response. 
    ctrl.ConnectionToCrmCompleted += ctrl_ConnectionToCrmCompleted;
    
    // Show the login control. 
    ctrl.ShowDialog();
    
    // Handle the returned CRM connection object.
    // On successful connection, display the CRM version and connected org name 
    if (ctrl.CrmConnectionMgr != null && ctrl.CrmConnectionMgr.CrmSvc != null && ctrl.CrmConnectionMgr.CrmSvc.IsReady)
    {
        MessageBox.Show("Connected to CRM! Version: " + ctrl.CrmConnectionMgr.CrmSvc.ConnectedOrgVersion.ToString() + 
        " Org: " + ctrl.CrmConnectionMgr.CrmSvc.ConnectedOrgUniqueName, "Connection Status");
    
        // Perform your actions here
    }
    else
    {
        MessageBox.Show("Cannot connect; try again!", "Connection Status");
    }
    
  7. 在按钮的单击事件下添加 ctrl_ConnectionToCrmCompleted 事件的定义:

    private void ctrl_ConnectionToCrmCompleted(object sender, EventArgs e)
    {
        if (sender is CRMLoginForm1)
        {
            this.Dispatcher.Invoke(() =>
            {
                ((CRMLoginForm1)sender).Close();
            });
        }
    }
    
  8. 这是您的 MainWindow.xaml.cs 文件在上两个步骤中添加了代码后的样子:

    示例代码

  9. 测试项目:

    1. 保存项目,并按 F5 键或单击“调试”>“启动调试”以验证项目是否成功编译。 如果编译成功,您将看到带有新的“登录到 Dynamics 365”按钮的 MainWindow。 单击该按钮显示公共登陆控件。

    2. 通过提供您的凭据并连接到 Dynamics 365 来测试身份验证,然后单击“登录”。 如果成功,将会显示一则消息告知版本号以及您所连接到的组织名称。 若要关闭该消息,请单击“确定”。

      项目测试结果

    3. 如果您再次单击“登录到 Dynamics 365”,应用程序会提示您选择上次登录活动中保存的凭据,或重新输入新的凭据。

      存储的凭据

另请参阅

示例:XRM Tooling API 快速入门
使用 XRM 工具,构建 Windows 客户端应用程序

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权