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

前提条件
- .NET Framework 4.6.2 以上。
- Visual Studio (2017 推奨)
- プロジェクト テンプレート使用時に必要な Nuget パッケージをダウンロード/復元できるように、インターネットに接続していること。
共通ログイン コントロール テンプレートを使用した WPF アプリケーションの作成
これは、認証、資格情報の保管と再利用、および既定のトレースまたはロギングのために、共通ログイン コントロールおよび基本コード活用する Windows Presentation Foundation (WPF) アプリケーションを、素早く作成する方法です。
Visual Studioを起動し、新しいプロジェクトを作成します。
新しいプロジェクト ダイアログ ボックスで以下を実行します。
- インストールされているテンプレートの一覧から、Visual C# を展開し、Dataverse SDK のテンプレート を選択します。
- .Net Framework 4.6.2 が選択されていることを確認します。
- Dynamics 365 用 WPF アプリケーション を選択します。
- プロジェクトの名前と場所を指定し、OK をクリックします。

注意
Visual Studio 2015 に関する既知の問題
VS 2015 のデバッグモードでプロジェクト/ソリューションを実行していると、接続できなくなることがあります。 これは、4.6.2 以降のターゲットフレームワークを使用しているかどうかにかかわらず発生します。 これは、Visual Studio ホスティングプロセスが .NET 4.5 に対してコンパイルされているために発生します。これは既定で TLS 1.2 がサポートされていないことを意味します。 回避策として、Visual Studio ホスティング プロセスを無効にできます。
Visual Studio でプロジェクトの名前を右クリックしてから、プロパティ をクリックします。 デバッグ タブで、Visual Studio ホスティング プロセスの有効化 オプションをオフにできます。
これは、VS 2015 のデバッグ エクスペリエンスにのみ影響を与えます。 これは構築されるバイナリまたは実行可能ファイルには影響しません。 同じ問題は、Visual Studio 2017 では発生しません。
プロジェクトをテストするには:
プロジェクトを保存して F5 を押すか、デバッグ > デバッグの開始 の順にクリックして、プロジェクトが正常にコンパイルされるか確認します。 コンパイルが成功すると、MainWindow が Dynamics 365 にログイン ボタンと共に表示されます。 ボタンをクリックして共通ログイン コントロールを表示します。
Dataverse に接続するための資格情報を提供して認証をテストし、ログイン をクリックします。 メッセージに Dataverse 接続状況が表示されます。
Dataverse に接続して種々の操作を実行するための、共通ログイン コントロールのテンプレートを使用するサンプルについては、サンプル: XRM ツール API のクイック スタートを参照してください。
共通ログイン コントロール テンプレートを既存の WPF アプリケーションに追加する
既に WPF クライアント アプリケーションがある場合は、そのアプリケーションに共通ログイン コントロール テンプレートを簡単に追加して、Dataverse 認証、資格情報の格納と再利用、および既定のトレースおよびロギングのための、一貫性があるサインイン エクスペリエンスおよび基本コードを実行することができます。 このケースでは、共通ログイン コントロールを呼び出すために、既存のクライアント アプリケーションのユーザー インターフェースでコントロールを作成し、Dataverse 接続オブジェクトのインスタンスを作成し、その接続オブジェクトを使用してさまざま処理を Dataverse で実行します。
既存の WPF アプリケーション プロジェクトを Visual Studio でオープンします。 この例では、WPF アプリケーション プロジェクトの名前が
SampleWPFAppであると仮定します。共通ログイン コントロール テンプレートをプロジェクトに追加します。
ソリューション エクスプローラー ウィンドウで、オブジェクト名を右クリックし、追加 > 新しい項目 の順にクリックします。
新しい項目の追加 ダイアログ ボックスの、インストールされているテンプレートの一覧から、Visual C# を展開し、Dataverse SDK のテンプレート を選択します。 WPF アプリケーション用 Dataverse ログオン フォーム をクリックし、OK をクリックします。

新たに追加された
CrmLoginForm1.xamlログイン コントロールは XAML デザイナー領域に表示されます。 表示されない場合は、ソリューション エクスプローラー ウィンドウで、CrmLoginForm1.xamlファイルをダブルクリックします。
ここで、新しく追加したログイン コントロールを、アプリケーションから呼び出す必要があります。 それには、ボタン コントロールを
MainWindow.xamlファイルに追加し、名前とコンテンツを btnSignIn および Dataverse にサインイン それぞれに設定します。
ボタンをダブルクリックして、
MainWindow.xaml.csファイル内の btnSignIn ボタンのクリック イベントにコードを追加します。以下のサンプル コードを btnSignIn ボタンのクリック イベントに追加して
CrmLoginForm1コントロールを呼出し、Dataverse 接続オブジェクトのインスタンスを作成します。
// 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");
}
- ボタンのクリック イベントの下に、
ctrl_ConnectionToCrmCompletedイベントの定義を追加します。
private void ctrl_ConnectionToCrmCompleted(object sender, EventArgs e)
{
if (sender is CRMLoginForm1)
{
this.Dispatcher.Invoke(() =>
{
((CRMLoginForm1)sender).Close();
});
}
}
これが、以前の 2 つの手順でコードを追加した後に、
MainWindow.xaml.csファイルが表示される方法です。
プロジェクトをテストするには:
プロジェクトを保存して F5 を押すか、デバッグ > デバッグの開始 の順にクリックして、プロジェクトが正常に編集されるかどうか確認します。 コンパイルが成功すると、MainWindow が新しい Dataverse にサインイン ボタンと共に表示されます。 それをクリックして共通ログイン コントロールを表示します。
Dataverse に接続するための資格情報を提供して認証をテストし、ログイン をクリックします。 成功した場合、バージョンおよび接続する組織名を示すメッセージが表示されます。 OK をクリックしてメッセージを閉じます。

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

関連項目
サンプル: XRM ツール API のクイック スタート
XRM ツールを使用して Windows のクライアント アプリケーションを作成
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示