public async Task <bool> LoginAsync(bool useSilent = false) { bool success = false; try { AuthenticationResult authenticationResult; if (useSilent) { authenticationResult = await ActiveDirectoryB2CAuthenticationClient.AcquireTokenSilentAsync(Constants.Scopes); } else { authenticationResult = await ActiveDirectoryB2CAuthenticationClient.AcquireTokenAsync( Constants.Scopes, string.Empty, UiOptions.SelectAccount, string.Empty, null, Constants.Authority, Constants.SignUpSignInPolicy); } if (User == null) { var payload = new JObject(); if (authenticationResult != null && !string.IsNullOrWhiteSpace(authenticationResult.Token)) { payload["access_token"] = authenticationResult.Token; } User = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, payload); success = true; } } catch (MsalException ex) { //throw ex; if (ex.Message != null && ex.Message.Contains("AADB2C90118")) { await OnForgotPassword(); } if (ex.ErrorCode != "authentication_canceled") { await page.DisplayAlert("An error has occurred", "Exception message: " + ex.Message, "Dismiss"); } } return(success); }
public async Task OnForgotPassword() { try { await ActiveDirectoryB2CAuthenticationClient.AcquireTokenAsync( Constants.Scopes, string.Empty, UiOptions.SelectAccount, string.Empty, null, Constants.Authority, Constants.ResetPasswordPolicy); } catch (MsalException) { // Do nothing - ErrorCode will be displayed in OnLoginButtonClicked await page.DisplayAlert("OnForgotPassword", "Exception", "Dismiss"); } }
public async Task <bool> LoginAsync(bool useSilent = false) { bool success = false; try { AuthenticationResult authenticationResult; if (useSilent) { authenticationResult = await ActiveDirectoryB2CAuthenticationClient.AcquireTokenSilentAsync(Constants.Scopes); } else { authenticationResult = await ActiveDirectoryB2CAuthenticationClient.AcquireTokenAsync( Constants.Scopes, string.Empty, UiOptions.SelectAccount, string.Empty, null, Constants.Authority, Constants.SignUpSignInPolicy); } if (User == null) { var payload = new JObject(); if (authenticationResult != null && !string.IsNullOrWhiteSpace(authenticationResult.Token)) { payload["access_token"] = authenticationResult.Token; } User = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, payload); success = true; } } catch (Exception ex) { throw ex; } return(success); }