На AuthenticateUserAsyn c всплывающее окно входа в систему Microsoft появляется, но отображается белым цветом и продолжает загружаться - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь получить доступ к своему личному OneDrive для чтения файла json через приложение WPF. Когда я достигаю AuthenticateUserAsyn c, появляется всплывающее окно учетной записи MS для входа в систему, но оно белого цвета и загружается. Это исходный код

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async Task<OneDriveClient> GetAuth(MsaAuthenticationProvider msaAuthenticationProvider)
        {
            await msaAuthenticationProvider.AuthenticateUserAsync();

            OneDriveClient oneDriveClient = new OneDriveClient("https://api.onedrive.com/v1.0", msaAuthenticationProvider);

            return oneDriveClient;
        }

        private async Task<dynamic> GetItem(OneDriveClient oneDriveClient)
        {
            dynamic result = await oneDriveClient
                     .Drive
                     .Root
                     .ItemWithPath("test.json")
                     .Request()
                     .GetAsync();

            return result;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            string[] scopes = new string[] {
                "onedrive.readwrite",
                "wl.signin"
            };

            var msaAuthenticationProvider = new MsaAuthenticationProvider(
                Constant.APPLICATION_ID,
                "https://login.live.com/oauth20_desktop.srf",
                scopes
           );

            var task = GetAuth(msaAuthenticationProvider);
            var result = task.Result;


            var task2 = GetItem(result);
            var result2 = task2.Result(result);
        }
    }

Код такой ужасный, я знаю ... Что не так? Я перемещаю AuthenticateUserAsyn c в кнопку, думая, что что-то пошло не так во время цикла загрузки WPF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...