Configurare il progettoSet up your project

Questa sezione fornisce istruzioni dettagliate su come creare un nuovo progetto per illustrare come integrare un'applicazione .NET per Windows Desktop (XAML) con Accedi con Microsoft in modo da poter eseguire query su API Web che richiedono un token.This section provides step-by-step instructions for how to create a new project to demonstrate how to integrate a Windows Desktop .NET application (XAML) with Sign-In with Microsoft so it can query Web APIs that requires a token.

L'applicazione creata in questa guida include un pulsante che consente di generare un grafico dei risultati da visualizzare sullo schermo, oltre a un pulsante di disconnessione.The application created by this guide exposes a button to graph and show results on screen and a sign-out button.

Se invece si preferisce scaricare questo progetto Visual Studio di esempio,Prefer to download this sample's Visual Studio project instead? Scaricare un progetto e passare direttamente al passaggio di configurazione per configurare il codice di esempio prima di eseguirlo.Download a project and skip to the Configuration step to configure the code sample before executing.

Creare l'applicazioneCreate your application

  1. In Visual Studio: File > New > ProjectIn Visual Studio: File > New > Project
  2. In Modelli selezionare Visual C#Under Templates, select Visual C#
  3. Selezionare WPF App (o Applicazione WPF, a seconda della versione di Visual Studio)Select WPF App (or WPF Application depending on the version of your Visual Studio)

Aggiungere Microsoft Authentication Library (MSAL) al progettoAdd the Microsoft Authentication Library (MSAL) to your project

  1. In Visual Studio: Tools > Nuget Package Manager > Package Manager ConsoleIn Visual Studio: Tools > Nuget Package Manager > Package Manager Console
  2. Nella finestra Console di Gestione pacchetti copiare e incollare il codice seguente:Copy/paste the following in the Package Manager Console window:
Install-Package Microsoft.Identity.Client -Pre

Questo pacchetto consente di installare Microsoft Authentication Library (MSAL),The package above installs the Microsoft Authentication Library (MSAL). che gestisce l'acquisizione, la memorizzazione nella cache e l'aggiornamento dei token utente usati per accedere ad API protette da Azure Active Directory v2.MSAL handles acquiring, caching and refreshing user toskens used to access APIs protected by Azure Active Directory v2.

Aggiungere il codice per inizializzare MSALAdd the code to initialize MSAL

Questo passaggio consente di creare una classe per gestire l'interazione con la libreria MSAL, ad esempio per la gestione dei token.This step will help you create a class to handle interaction with MSAL Library, such as handling of tokens.

  1. Aprire il file App.xaml.cs e aggiungere alla classe il riferimento relativo alla libreria MSAL:Open the App.xaml.cs file and add the reference for MSAL library to the class:
using Microsoft.Identity.Client;
  1. Aggiornare la classe App con il codice seguente:Update the App class to the following:
public partial class App : Application
{
    //Below is the clientId of your app registration. 
    //You have to replace the below with the Application Id for your app registration
    private static string ClientId = "your_client_id_here";

    public static PublicClientApplication PublicClientApp = new PublicClientApplication(ClientId);

}

Creare l'interfaccia utente dell'applicazioneCreate your application’s UI

La sezione seguente illustra come un'applicazione può eseguire una query su un server back-end protetto come Microsoft Graph.The section below shows how an application can query a protected backend server like Microsoft Graph. Nell'ambito del modello di progetto viene automaticamente creato un file MainWindow.xaml.A MainWindow.xaml file should automatically be created as a part of your project template. Aprire il file e seguire le istruzioni seguenti:Open this file this file and then follow the instructions below:

Sostituire il valore <Grid> dell'applicazione con il seguente:Replace your application’s <Grid> with be the following:

<Grid>
    <StackPanel Background="Azure">
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
            <Button x:Name="CallGraphButton" Content="Call Microsoft Graph API" HorizontalAlignment="Right" Padding="5" Click="CallGraphButton_Click" Margin="5" FontFamily="Segoe Ui"/>
            <Button x:Name="SignOutButton" Content="Sign-Out" HorizontalAlignment="Right" Padding="5" Click="SignOutButton_Click" Margin="5" Visibility="Collapsed" FontFamily="Segoe Ui"/>
        </StackPanel>
        <Label Content="API Call Results" Margin="0,0,0,-5" FontFamily="Segoe Ui" />
        <TextBox x:Name="ResultText" TextWrapping="Wrap" MinHeight="120" Margin="5" FontFamily="Segoe Ui"/>
        <Label Content="Token Info" Margin="0,0,0,-5" FontFamily="Segoe Ui" />
        <TextBox x:Name="TokenInfoText" TextWrapping="Wrap" MinHeight="70" Margin="5" FontFamily="Segoe Ui"/>
    </StackPanel>
</Grid>