DeviceCodeHelper.cs
using System;
using System.Threading.Tasks; using System.Collections.Generic; using Microsoft.Identity.Client; public static class DeviceCodeHelper { public static Func<DeviceCodeResult,Task> GetDeviceCodeResultCallback() { return deviceCodeResult => { // This will print the message on the console which tells the user where to go sign-in using // a separate browser and the code to enter once they sign in. // The AcquireTokenWithDeviceCode() method will poll the server after firing this // device code callback to look for the successful login of the user via that browser. // This background polling (whose interval and timeout data is also provided as fields in the // deviceCodeCallback class) will occur until: // * The user has successfully logged in via browser and entered the proper code // * The timeout specified by the server for the lifetime of this code (typically ~15 minutes) has been reached // * The developing application calls the Cancel() method on a CancellationToken sent into the method. // If this occurs, an OperationCanceledException will be thrown (see catch below for more details). Console.WriteLine(deviceCodeResult.Message); return Task.FromResult(0); }; } } |