次の方法で共有


サンプル: CrmServiceClient を使用してグローバル探索サービスにアクセスする

このサンプル コードは、CrmServiceClient.DiscoverGlobalOrganizations Method による探索サービスの使用方法について説明します。

注意

このサンプルは .NET の完全なフレームワークに限定されます。 Dataverse.Client.ServiceClient.DiscoverOnlineOrganizationsAsync Method を使用した .NET Core と互換性のある新しいサンプルがあります。 サンプル: グローバル探索サービス (C#) を参照してください。

このサンプルを実行する方法

このサンプルでは接続情報の入力を求めるダイアログが開きません。

App.config 接続文字列内で値を設定すると、それらを使用します。 それ以外の場合は、username および password 変数を SampleProgram.Main メソッドで設定します。

このサンプルの概要

このサンプルでは、SDKアセンブリ CrmServiceClient を使用して、ユーザーの資格情報でグローバル検出サービスにクエリを実行し、接続できる環境を決定します。

1 つ以上の環境が返された場合、サンプルはユーザーに 1 つを選択させ、WhoAmIRequest を使用してその環境に対する SystemUser.UserId を返します。

このサンプルがどのように動作するか

このサンプルの概要 で説明されているシナリオをシミュレートするために、サンプルは次のことを行います。

セットアップ

このサンプルでは、ユーザー資格情報のユーザー名およびパスワードを使用する以外に、特別な設定は必要ありません。

環境が存在する地域データ センターを知っている場合、 SampleProgram.cs ファイルの 40 行目でこの値を設定すると、サンプルがより速く実行されます。

SampleMethods.cs には、既知のグローバルディスカバリーセンターについて各 Clouds リストがあります。 各列挙メンバーは Description 表記で装飾されます。 Unknown を除くすべてのメンバーに、グローバル検出サービスが記述と設定された URL があります。

実際の動作

  1. ユーザーの資格情報および cloud 値を使用して、プログラムは GetAllOrganizations 静的メソッドを使用してユーザーに対するすべての既知の環境を取得します。

  2. GetAllOrganizations メソッドは、cloud 値が Cloud.Unknown に設定されているかどうかを検出します。 このメンバーに設定されている場合、このメソッドは商用 Cloud 列挙型を選択し、GetOrganizationsForCloud 静的メソッドを使用して見つかった環境を列挙して取得します。

    特定のデータ センターが設定されている場合、GetAllOrganizations は単にそれらの値で GetOrganizationsForCloud を呼び出します。

  3. GetOrganizationsForCloud メソッドは、メンバー Description 装飾からクラウドの検出サービス URL を抽出し、それをユーザーの資格情報と一緒に使用して、DiscoverGlobalOrganizations CrmServiceClient ヘルパー メッセージを実行します。

    ユーザーに特定のデータ センターでの環境がない場合は、System.ServiceModel.Security.SecurityAccessDeniedException が必要です。

  4. 任意の環境が GetAllOrganizations メソッドで返されると、コンソールに表示され、番号を入力して 1 つを選択するように求められます。 選択が有効な場合、選択された環境データは WhoAmIRequest を実行するために使用され、その環境でのユーザーに対する SystemUser.UserId を返します。

クリーンアップ

このサンプルでは、レコードは作成されません。 クリーンアップの必要はありません。

関連項目

ユーザー組織の検出
サンプル: グローバル探索サービス (C#)
サンプル: グローバル検索を利用した Blazor WebAssembly

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。