コード例 #1
0
        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);
        }
コード例 #2
0
 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");
     }
 }
コード例 #3
0
        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);
        }