/// <summary> /// Get Token for User. /// </summary> /// <returns>Token for user.</returns> public static async Task <string> GetTokenForUserAsync() { AuthenticationResult authResult; IEnumerable <IAccount> accounts = await IdentityClientApp.GetAccountsAsync(); IAccount firstAccount = accounts.FirstOrDefault(); try { authResult = await IdentityClientApp.AcquireTokenSilentAsync(Scopes, firstAccount); } catch (MsalUiRequiredException) { authResult = await IdentityClientApp.AcquireTokenAsync(Scopes); } return(authResult.AccessToken); }
/// <summary> /// Get a Microsoft Graph access token using the v2.0 Endpoint. /// </summary> /// <param name="appClientId">Application client ID</param> /// <param name="uiParent">UiParent instance - required for Android</param> /// <param name="redirectUri">Redirect Uri - required for Android</param> /// <param name="loginHint">UPN</param> /// <returns>An oauth2 access token.</returns> public async Task <string> GetUserTokenV2Async(string appClientId, UIParent uiParent = null, string redirectUri = null, string loginHint = null) { if (_identityClient == null) { _identityClient = new MSAL.PublicClientApplication(appClientId); } if (!string.IsNullOrEmpty(redirectUri)) { _identityClient.RedirectUri = redirectUri; } var upnLoginHint = string.Empty; if (!string.IsNullOrEmpty(loginHint)) { upnLoginHint = loginHint; } MSAL.AuthenticationResult authenticationResult = null; try { IAccount account = (await _identityClient.GetAccountsAsync()).FirstOrDefault(); authenticationResult = await _identityClient.AcquireTokenSilentAsync(DelegatedPermissionScopes, account); } catch (MsalUiRequiredException) { try { authenticationResult = await _identityClient.AcquireTokenAsync(DelegatedPermissionScopes, upnLoginHint, uiParent); } catch (MsalException) { throw; } } return(authenticationResult?.AccessToken); }
/// <summary> /// Get Token for User. /// </summary> /// <returns>Token for user.</returns> public static async Task <string> GetTokenForUserAsync() { AuthenticationResult authResult = null; try { IEnumerable <IAccount> accounts = await IdentityClientApp.GetAccountsAsync(); IAccount firstAccount = accounts.FirstOrDefault(); authResult = await IdentityClientApp.AcquireTokenSilentAsync(Scopes, firstAccount); return(authResult.AccessToken); } catch (MsalUiRequiredException ex) { // A MsalUiRequiredException happened on AcquireTokenSilentAsync. //This indicates you need to call AcquireTokenAsync to acquire a token authResult = await IdentityClientApp.AcquireTokenAsync(Scopes); return(authResult.AccessToken); } }