/console-csharp-connect-sample

This sample shows how to connect a Windows console application to a Microsoft work or school (Azure Active Directory) or personal (Microsoft) account using the Microsoft Graph API to send an email.

Primary LanguageC#MIT LicenseMIT

Microsoft Graph C# Console Connect Sample

Table of contents

Introduction

This sample shows how to connect a Windows console application to a Microsoft work or school (Azure Active Directory) or personal (Microsoft) account using the Microsoft Graph API. It uses the Microsoft Graph API to retrieve a user's profile picture, upload the picture to OneDrive, create a sharing link, and send an email that contains the photo as an attachment and the sharing link in its text. It uses the Microsoft Graph .NET Client Library to work with data returned by Microsoft Graph. The sample uses the Azure AD v2.0 endpoint, which enables users to sign in with either their personal or work or school Microsoft accounts.

The sample uses the Microsoft Authentication Library (MSAL) for authentication.

Prerequisites

This sample requires the following:

How To Run This Sample

Step 1: Clone or download this repository

From your shell or command line:

git clone https://github.com/microsoftgraph/console-csharp-connect-sample

Step 2: Configure your Azure AD tenant

  1. Sign in to the Azure portal using either a work or school account or a personal Microsoft account.
  2. If your account gives you access to more than one tenant, select your account in the top right corner, and set your portal session to the desired Azure AD tenant (using Switch Directory).
  3. In the left-hand navigation pane, select the Azure Active Directory service, and then select App registrations (Preview).

Register the client app

  1. In App registrations (Preview) page, select Register an Application.
  2. When the Register an application page appears, enter your application's registration information:
    • In the Name section, enter a meaningful application name that will be displayed to users of the app, for example Console App for Microsoft Graph
    • In the Supported account types section, select Accounts in any organizational directory and personal Microsoft accounts (e.g. Skype, Xbox, Outlook.com).
    • Select Register to create the application.
  3. On the app Overview page, find the Application (client) ID value and record it for later. You'll need it to configure the Visual Studio configuration file for this project.
  4. In the list of pages for the app, select Authentication
    • In the Suggested Redirect URIs for public clients(mobile,desktop), check the second box so that the app can work with the MSAL libs used in the application. (The box should contain the option urn:ietf:wg:oauth:2.0:oob).
  5. In the list of pages for the app, select API permissions
    • Click the Add a permission button and then,
    • Ensure that the Microsoft APIs tab is selected.
    • In the Commonly used Microsoft APIs section, click on Microsoft Graph.
    • In the Delegated permissions section, ensure that the right permissions are checked: User.Read, Mail.Send and Files.ReadWrite. Use the search box if necessary.
    • Select the Add permissions button.

Step 3: Configure the sample to use your Azure AD tenant

In the steps below, "ClientId" is the same as "Application ID" or "AppId".

Open the solution in Visual Studio to configure the projects.

Configure the client project

  1. In the console-csharp-connect-sample folder, rename the appsettings.json.example file to appsettings.json
  2. Open and edit the appsettings.json file to make the following change
    1. Find the line where ClientId is set as YOUR_CLIENT_ID_HERE and replace the existing value with the application (client) ID of the Console App for Microsoft Graph application copied from the Azure portal.

Step 4: Build and run the sample

  1. Open the sample solution in Visual Studio.
  2. Press F5 to build and run the sample. This will restore the NuGet package dependencies and open the console application.
  3. When prompted, authenticate with your Microsoft account and consent to the permissions that the application needs.
  4. Follow the prompts to send a message from your account to yourself or someone else.

Questions and comments

We'd love to get your feedback about the Microsoft Graph API Console App. You can send your questions and suggestions in the Issues section of this repository.

Questions about Microsoft Graph development in general should be posted to Stack Overflow. Make sure that your questions or comments are tagged with [microsoftgraph].

Contributing

If you'd like to contribute to this sample, see CONTRIBUTING.MD.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Additional resources

Copyright

Copyright (c) 2019 Microsoft. All rights reserved.