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
Con las credenciales de usuario y el valor
cloud
, el programa usa el método estáticoGetAllOrganizations
para recuperar todos los entornos conocidos del usuario.El método
GetAllOrganizations
detecta de si el valorcloud
está establecido enCloud.Unknown
. Si se establece en este miembro, este método elegirá la enumeración comercialCloud
y recupera cualquier entorno que se encuentre usando el método estáticoGetOrganizationsForCloud
.Si está establecido un centro de datos específico,
GetAllOrganizations
llamará simplemente aGetOrganizationsForCloud
con estos valores.El método
GetOrganizationsForCloud
extrae la URL del servicio de detección de la nube de la decoración del miembroDescription
y lo utiliza junto con las credenciales de usuario para ejecutar elDiscoverGlobalOrganizations
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.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 unaWhoAmIRequest
y para devolver elSystemUser.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).