Usar el control de inicio de sesión común de los útiles de XRM en las aplicaciones cliente

La lógica para autenticación de Microsoft Dataverse, almacenamiento de credenciales y recuperación, y registro de diagnóstico está integrado en el inicio de sesión común, de modo que se pueden aprovechar rápidamente estas funciones en las aplicaciones cliente de Windows (WPF) para Dataverse. El control de inicio de sesión común es una implementación de Microsoft.Xrm.Tooling.CrmConnectControl. A continuación, se muestra una imagen del control.

Control de inicio de sesión común de útiles de XRM

Requisitos previos

  • .NET Framework versión 4.8 o una versión posterior
  • Visual Studio 2019 o posterior
  • Acceso a Internet para que pueda descargar los paquetes de NuGet requeridos
  • Acceso de red a un entorno de prueba de Dataverse y credenciales de inicio de sesión válidas

Crear una aplicación WPF que use el control de inicio de sesión común

Aquí se describe el proceso para crear una aplicación Windows Presentation Foundation (WPF) que aprovecha el control de inicio de sesión común, incluido el código subyacente para la autenticación, el almacenamiento de credenciales y la reutilización, y el seguimiento predeterminado o registro.

La solicitud completada se puede encontrar aquí: AppWithLoginControl.

Crear un proyecto con el control de inicio de sesión

Comience por crear una nueva solución de Visual Studio y un proyecto WPF, luego, agregue el código XAML de control de inicio de sesión.

  1. Iniciar Visual Studio y crear un nuevo proyecto usando la plantilla Aplicación WPF (.NET Framework) para una aplicación de escritorio de Windows C#.

    Nuevo proyecto a partir de una plantilla

  2. Configure el proyecto y use el marco de trabajo .NET Framework 4.8.

    Configuración del proyecto

  3. Seleccionar Proyecto > Administrar paquetes NuGet. Examine o busque los siguientes paquetes e instálelos (en el orden que se muestra a continuación) en el proyecto.

    • Microsoft.CrmSdk.XrmTooling.CoreAssembly
    • Microsoft.CrmSdk.XrmTooling.WpfControls

    Instalación del paquete NuGet

  4. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto y seleccione Agregar > Nueva carpeta.

  5. Asigne a la carpeta el nombre "LoginUX" y luego copie el código XAML de control de inicio de sesión en esa carpeta. Basta con arrastrar y soltar el archivo ExampleLoginForm.xaml desde el Explorador de archivos en la carpeta del proyecto Visual Studio y el archivo C# asociado también aparecerá en el proyecto.

    Carpeta LoginUX

  6. Pruebe a compilar la solución (F6). Debe compilarse sin errores ni advertencias.

Conectar el control de inicio de sesión a la aplicación

Ahora vamos a conectar el control de inicio de sesión a la aplicación.

  1. Haga doble cli en el archivo ExampleLoginForm.xaml en el Explorador de soluciones. Debería ver una imagen del control en el diseñador.

    Control de inicio de sesión en el diseñador de interfaz de usuario

  2. Cambie a la pestaña del diseñador MainWindow.xaml. Agregue un control de Botón en el diseñador y establezca los valores de las propiedades Nombre y Contenido común en btnSignIn e Inicar sesión en Dataverse, respectivamente.

    Agregar un botón

  3. Haga doble clic en el botón para agregar el código del evento de clic del botón. Se muestra una ventana de edición de código para el archivo de clase MainWindow.

  4. Sustituya el método de controlador del evento Button_Click vacío con este código (más abajo) para llamar al control de inicio de sesión y crear una instancia del objeto de conexión de 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");
    }
}
  1. Agregue la definición del método del controlador de eventos ctrl_ConnectionToCrmCompleted en la clase MainWindow debajo del método del controlador de eventos Button_Click y en el mismo nivel de sangría.
private void ctrl_ConnectionToCrmCompleted(object sender, EventArgs e)
{
    if (sender is ExampleLoginForm)
    {
        this.Dispatcher.Invoke(() =>
        {
            ((ExampleLoginForm)sender).Close();
        });
    }
}
  1. Agregue una instrucción de uso al principio del archivo C# para que se resuelva la clase ExampleLoginForm.
using PowerApps.Samples.LoginUX;
  1. Compile el programa (F6). Debe compilarse sin errores ni advertencias.

Probar el programa

Ahora ejecutaremos el programa y probaremos su funcionamiento.

  1. Ejecute el programa (F5).

  2. Seleccione el botón Iniciar sesión en Dataverse Se mostrará el control de inicio de sesión.

  3. La siguiente figura muestra la selección del entorno en línea de Office 365 y cómo se marca Mostrar la lista de organizaciones disponibles para ver una lista de entornos de los que el usuario es miembro.

    Inicio de sesión en Office 365

  4. Seleccione Iniciar sesión.

  5. Cuando se le solicite la información de inicio de sesión, indíquela. La cuenta especificada está en el formulario someone@my-env.onmicrosoft.com.

  6. Una lista de entornos se muestra en el control. Elija uno y seleccione Iniciar sesión una segunda vez.

  7. Se muestra un cuadro de diálogo de estado de la conexión que contiene la versión de Dataverse y el nombre de la organización.

    Estado de conexión

  8. Haga clic en Aceptar.

  9. Si vuelve a hace clic en Iniciar sesión en Dataverse, la aplicación le preguntará si desea elegir las credenciales guardadas en la última actividad de inicio de sesión o volver a especificar las credenciales.

  10. Cuando haya terminado de probar, cierre la ventana del programa.

Consulte también

Crear aplicaciones cliente de Windows mediante las herramientas XRM

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).