UWP — Microsoft.OneDrive.Sdk — не удается войти в систему с правильными учетными данными

#c# #uwp #windows-authentication #onedrive

#c# #uwp #windows-аутентификация #onedrive

Вопрос:

Мы используем OneDrive SDK внутри нашего приложения UWP.

Для входа пользователя в систему мы используем следующий код:

         OnlineIdAuthenticationProvider msaAuthenticationProvider = new OnlineIdAuthenticationProvider(
            new[] { "onedrive.readwrite" });
        try
        {
            await msaAuthenticationProvider.AuthenticateUserAsync();
            m_oneDriveClient = new OneDriveClient("https://api.onedrive.com/v1.0", msaAuthenticationProvider);
        }
        catch (Exception e)
        {
            s_log.ErrorFormat("OneDrive authentication failed: {0}", e.Message);
        }
  

В большинстве случаев вход в систему выполняется успешно.

По-видимому, в случаях, когда пользователь является администратором в домене определенной компании, этот метод не работает, и мы сталкиваемся со следующим исключением:

 Exception of type 'Microsoft.Graph.ServiceException' was thrown
  

Очевидно, что учетные данные, используемые пользователем, верны и проверены.

Учетные данные относятся к частной учетной записи, которая НЕ используется для входа на компьютер с Windows, НО по-прежнему является признанной учетной записью Microsoft, используемой, например, для привязки OneDrive к той же машине (фактически, пользователь может видеть свои файлы в проводнике Windows / OneDrive!).

Итак, у меня есть следующие вопросы:

  1. почему всплывающее окно входа появляется только для определенных пользователей, в то время как для других (например, для личных учетных записей) вход в систему выполняется автоматически.
  2. как мы можем заставить SDK отображать всплывающее окно входа.
  3. почему возникает исключение (и связанный с ним сбой аутентификации) для такой конфигурации учетных данных.

Спасибо!