Compartir por


Ejemplo: Usar CrmServiceClient para acceder al Global Discovery Service

Este código de muestra enseña cómo usar los servicios de detección con el CrmServiceClient.DiscoverGlobalOrganizations Method.

Nota

Esta muestra está limitada a .NET Full Framework. Hay una muestra más reciente compatible con .NET Core que usa Dataverse.Client.ServiceClient.DiscoverOnlineOrganizationsAsync Method. Ver Ejemplo: Global Discovery Service (C#).

Cómo ejecutar esta muestra

En este ejemplo no se abrirá un diálogo para pedirle información de conexión.

Si ha establecido valores en las cadenas de conexión App.config, los utilizarán. De lo contrario, establezca las variables username y password en el método SampleProgram.Main.

Qué hace este ejemplo

Esta muestra usa el ensamblado del SDK CrmServiceClient para consultar el servicio de descubrimiento global con las credenciales de un usuario para determinar con qué entornos pueden conectarse.

Si se devuelven uno o varios entornos, el ejemplo le solicitará al usuario que seleccione uno y, a continuación, use un WhoAmIRequest para devolver el SystemUser.UserId de ese entorno.

Cómo funciona esta muestra

Para simular el escenario descrito en Qué hace este ejemplo, la muestra hará lo siguiente:

Configuración

En este ejemplo no se necesita ninguna configuración especial salvo que haya un nombre de usuario y una contraseña de credenciales de usuario válidos para usarlos.

Si conoce el centro de datos regional donde están sus entornos, el ejemplo se ejecutará más rápido si se establece este valor en la línea 40 del archivo de SampleProgram.cs.

En SampleMethods.cs hay una enumeración Clouds para cada uno de los centros de descubrimiento mundial conocidos. Cada uno de los miembros de enumeración está acompañado de una notación Description. Todos estos miembros excepto Unknown tienen la URL del servicio de descubrimiento global establecida como descripción.

Demostración

  1. Con las credenciales de usuario y el valor cloud, el programa usa el método estático GetAllOrganizations para recuperar todos los entornos conocidos del usuario.

  2. El método GetAllOrganizations detecta de si el valor cloud está establecido en Cloud.Unknown. Si se establece en este miembro, este método elegirá la enumeración comercial Cloud y recupera cualquier entorno que se encuentre usando el método estático GetOrganizationsForCloud.

    Si está establecido un centro de datos específico, GetAllOrganizations llamará simplemente a GetOrganizationsForCloud con estos valores.

  3. El método GetOrganizationsForCloud extrae la URL del servicio de detección de la nube de la decoración del miembro Description y lo utiliza junto con las credenciales de usuario para ejecutar el DiscoverGlobalOrganizations de ayuda de CrmServiceClient.

    Se espera un System.ServiceModel.Security.SecurityAccessDeniedException cuando el usuario no tiene ningún entorno en un centro de datos específico.

  4. Si algún entorno es devuelto por el método GetAllOrganizations, será enumerado en la Consola y a usted se le solicitará que seleccione uno escribiendo un número. Si la decisión es válida, los datos del entorno seleccionados se usan para ejecutar una WhoAmIRequest y para devolver el SystemUser.UserId para el usuario de ese entorno.

Limpiar

Este ejemplo no crea ningún registro. No es necesario ninguna limpieza.

Consulte también

Detectar organizaciones de usuario
Ejemplo: Global Discovery Service (C#)
Ejemplo: Blazor WebAssembly con Global Discovery

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).