クライアント アプリケーションで、XRM ツール共通ログイン コントロールを使用する
Microsoft Dataverse 認証、資格情報の保管および検索、および診断ロギングのロジックが共通ログイン コントロールに組み込まれ、自分の Dataverse 用 Windows (WPF) クライアント アプリケーションで、これらの機能を素早く活用できます。 共通ログイン コントロールは、Microsoft.Xrm.Tooling.CrmConnectControl の実装部分です。 コントロールのイメージを以下に示します。
前提条件
- .NET Framework バージョン 4.8 またはそれ以降
- Visual Studio 2019 またはそれ以降
- 必要な NuGet パッケージをダウンロードできるインターネット アクセス
- Dataverse テスト環境へのネットワーク アクセスと、有効なログオン資格情報
共通ログイン コントロールを使用する WPF アプリケーションの作成
認証、資格情報の保管と再利用、および既定のトレースまたはロギングなどの、共通ログイン コントロールおよび基本コード活用する Windows Presentation Foundation (WPF) アプリケーションを作成するプロセスを体験しましょう。
完成したアプリケーションは次の場所にあります: AppWithLoginControl。
ログイン コントロールを使用してプロジェクトを作成する
新しい Visual Studio ソリューションと WPF プロジェクトを作成することから始めて、そこにログイン コントロール XAML コードを追加します。
Visual Studio を起動し、Windows C# デスクトップ アプリ用の WPF アプリ (.NET Framework) テンプレートを使用して新規プロジェクトを作成します。
プロジェクトを構成し、.NET 4.8 フレームワークをターゲットにします。
プロジェクト > NuGet パッケージの管理 を選択します。 次のパッケージを参照または検索し、それらを (以下に示す順序で) プロジェクトにインストールします。
- Microsoft.CrmSdk.XrmTooling.CoreAssembly
- Microsoft.CrmSdk.XrmTooling.WpfControls
ソリューション エクスプローラーでプロジェクト名を右クリックし、追加 > 新しいフォルダー を選択します。
フォルダーに「LoginUX」という名前を付けてからログイン コントロール XAML コード そのフォルダーにコピーします。 ExampleLoginForm.xaml ファイルをファイル エクスプローラーから Visual Studio プロジェクト フォルダーにドラッグ アンド ドロップすると、関連する C# ファイルもプロジェクトに表示できます。
ソリューションのビルドをテストします (F6)。 エラーや警告なしでビルドする必要があります。
ログイン コントロールをアプリに接続する
次に、ログイン コントロールをアプリケーションに接続します。
ソリューション エクスプローラーで ExampleLoginForm.xaml をダブルクリックします。 デザイナーにコントロールのイメージが表示されます。
MainWindow.xaml デザイナー タブに切り替えます。デザイナでボタン コントロールを追加し、名前と共通コンテンツのプロパティ値にそれぞれ btnSignIn および Sign in to Dataverse を設定します。
ボタンをダブルクリックして、ボタンのクリック イベントにコードを追加します。 MainWindow クラス ファイルのコード編集ウィンドウが表示されます。
空の Button_Click イベント ハンドラー メソッドをこのコード (下) に置き替えてログイン コントロールを呼出し、Dataverse 接続オブジェクトのインスタンスを作成します。
private void Button_Click(object sender, RoutedEventArgs e)
{
// Instantiate the login control.
ExampleLoginForm ctrl = new ExampleLoginForm();
// Wire the button click event to the login response.
ctrl.ConnectionToCrmCompleted += ctrl_ConnectionToCrmCompleted;
// Show the login control.
ctrl.ShowDialog();
// Check that a web service connection is returned and the service is ready.
if (ctrl.CrmConnectionMgr != null && ctrl.CrmConnectionMgr.CrmSvc != null && ctrl.CrmConnectionMgr.CrmSvc.IsReady)
{
// Display the Dataverse version and connected environment name
MessageBox.Show("Connected to Dataverse version: " + ctrl.CrmConnectionMgr.CrmSvc.ConnectedOrgVersion.ToString() +
" Organization: " + ctrl.CrmConnectionMgr.CrmSvc.ConnectedOrgUniqueName, "Connection Status");
// TODO Additional web service operations can be performed here
}
else
{
MessageBox.Show("Cannot connect; try again!", "Connection Status");
}
}
- ctrl_ConnectionToCrmCompleted イベント ハンドラー メソッドの定義を Button_Click イベント ハンドラー メソッドの下の同じインデント レベルにある MainWindow クラスに追加します。
private void ctrl_ConnectionToCrmCompleted(object sender, EventArgs e)
{
if (sender is ExampleLoginForm)
{
this.Dispatcher.Invoke(() =>
{
((ExampleLoginForm)sender).Close();
});
}
}
- ExampleLoginForm クラスが解決されるように、C# ファイルの先頭に using ステートメントを追加します。
using PowerApps.Samples.LoginUX;
- プログラムをビルドします (F6)。 エラーや警告なしでビルドする必要があります。
プログラムをテストする
次に、プログラムを実行して動作をテストします。
プログラムを実行します (F5)。
Dataverse にサインイン ボタンを選択します。 ログイン コントロールが表示されます。
以下の図では、Office 365 オンライン環境を選択し、利用可能な組織のリストを表示 をチェックして、ユーザーがメンバーである環境のリストを表示しています。
ログインを選択します。
ログイン情報を求められたら、入力します。 入力するアカウントは someone@my-env.onmicrosoft.com 形式です。
環境のリストがコントロールに表示されます。 1 つ選択し、ログイン をもう一度選択します。
Dataverse バージョンと組織名を含むつながりの状態のダイアログが表示されます。
OK をクリックします。
再び Dataverse にサインイン をクリックすると、アプリケーションから、最後のサインイン活動から保存された資格情報選択するか、資格情報を再入力するように求められます。
テストが完了したら、プログラム ウィンドウを閉じます。
参照
XRM ツールを使用して Windows のクライアント アプリケーションを作成
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。