#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!).
Итак, у меня есть следующие вопросы:
- почему всплывающее окно входа появляется только для определенных пользователей, в то время как для других (например, для личных учетных записей) вход в систему выполняется автоматически.
- как мы можем заставить SDK отображать всплывающее окно входа.
- почему возникает исключение (и связанный с ним сбой аутентификации) для такой конфигурации учетных данных.
Спасибо!