クライアント アプリケーションで、XRM ツール共通ログイン コントロールを使用する

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 SDK では Microsoft Visual Studio 用テンプレートが用意され、これによりクライアント アプリケーションで共通ログイン コントロールを使用できるようにできます。Dynamics 365 認証、資格情報の保管および検索、および診断ロギングのためのコードがテンプレートに組み込まれ、自分の Dynamics 365 用 Windows クライアント アプリケーションで、これらの機能を素早く活用できます。 共通ログイン コントロールは Microsoft.Xrm.Tooling.CrmConnectControl を導入したもので、コントロールは以下の画像のようなものです。

XRM ツール共通ログイン コントロール

このトピックの内容

前提条件

共通ログイン コントロール テンプレートを使用した WPF アプリケーションの作成

共通ログイン コントロール テンプレートを既存の WPF アプリケーションに追加する

前提条件

  • .NET Framework 4.5.2

  • Microsoft Visual Studio 2012、Visual Studio 2013、または Visual Studio 2015

  • Visual Studio 2012Visual Studio 2013、または Visual Studio 2015 用の Nuget Package Manager

  • プロジェクト テンプレート使用時に必要な 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. プロジェクトの名前と場所を指定し、[OK] をクリックします。

    CRM のテンプレートの WPF アプリケーション

  3. プロジェクトをテストするには:

    1. プロジェクトを保存して F5 を押すか、[デバッグ] > [デバッグの開始] の順にクリックして、プロジェクトが正常に編集されるかどうか確認します。 コンパイルが成功すると、MainWindow が [Dynamics 365 にログイン] ボタンと共に表示されます。 ボタンをクリックして共通ログイン コントロールを表示します。

    2. Dynamics 365 に接続するための資格情報を提供して認証をテストし、[ログイン] をクリックします。 メッセージに Dynamics 365 接続状況が表示されます。

Dynamics 365 に接続して種々の操作を実行するための、共通ログイン コントロールのテンプレートを使用するサンプルは、「サンプル: XRM ツール API のクイック スタート」を参照してください。

共通ログイン コントロール テンプレートを既存の WPF アプリケーションに追加する

既に WPF クライアント アプリケーションがある場合は、そのアプリケーションに共通ログイン コントロール テンプレートを簡単に追加して、Dynamics 365 認証、資格情報の格納と再利用、および既定のトレースおよびロギングのための、一貫性があるサインイン エクスペリエンスおよび基本コードを実行することができます。 このケースでは、共通ログイン コントロールを呼び出すために、既存のクライアント アプリケーションのユーザー インターフェースでコントロールを作成し、Dynamics 365 接続オブジェクトのインスタンスを作成し、その接続オブジェクトを使用してさまざま処理を Dynamics 365 で実行します。

  1. 既存の WPF アプリケーション プロジェクトを Visual Studio でオープンします。 この例では、WPF アプリケーション プロジェクトの名前が SampleWPFApp であると仮定します。

  2. 共通ログイン コントロール テンプレートをプロジェクトに追加します。

    1. [ソリューション エクスプローラー] ウィンドウで、オブジェクト名を右クリックし、[追加] > [新しい項目] の順にクリックします。

    2. [新しい項目の追加] ダイアログ ボックスの、インストールされているテンプレートの一覧から、[Visual C#] を展開し、[Dynamics 365 SDK のテンプレート] を選択します。 [WPF アプリケーション用 Dynamics 365 ログオン フォーム] をクリックし、[OK] をクリックします。

      共通ログイン コントロール テンプレートの追加

  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. これが、以前の 2 つの手順でコードを追加した後に、MainWindow.xaml.cs ファイルが表示される方法です。

    サンプル コード

  9. プロジェクトをテストするには:

    1. プロジェクトを保存して F5 を押すか、[デバッグ] > [デバッグの開始] の順にクリックして、プロジェクトが正常に編集されるかどうか確認します。 コンパイルが成功すると、MainWindow が新しい [Dynamics 365 にサインイン] ボタンと共に表示されます。 それをクリックして共通ログイン コントロールを表示します。

    2. Dynamics 365 に接続するための資格情報を提供して認証をテストし、[ログイン] をクリックします。 成功した場合、バージョンおよび接続する組織名を示すメッセージが表示されます。[OK] をクリックしてメッセージを閉じます。

      プロジェクトのテスト結果

    3. 再び [Dynamics 365 にサインイン] をクリックすると、アプリケーションから、最後のサインイン活動から保存された資格情報選択するか、新しい資格情報を再入力するように求められます。

      保存された資格情報

関連項目

サンプル: XRM ツール API のクイック スタート
XRM ツールを使用して Windows のクライアント アプリケーションを作成する

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権