Ответ 1
Вместо этого используйте класс UserPasswordCredential
, который является подклассом UserCredential
В ADAL.NET 2.x мы используем приведенный ниже код для получения токена от Azure AD с помощью UserCredential
и он отлично работает:
var authContext = new AuthenticationContext(Authority);
var userCredential = new UserCredential(username, password);
var token = authContext.AcquireToken(ResourceUrl, ClientId, userCredential);
Когда я обновил ADAL.NET v3 сегодня, код больше не компилируется, потому что в новой версии UserCredential
не имеет перегруженного конструктора с именем пользователя и паролем.
Как я могу обойти это с новой версией ADAL.NET v3?
Вместо этого используйте класс UserPasswordCredential
, который является подклассом UserCredential
Попробуйте UserPasswordCredential
, класс должен быть переименован в v3.
Это устраняет проблему для UserCredentials, но также кажется, что это изменение типа AuthenticationContext, которое больше не похоже на метод AcquireToken. Вы можете решить эту проблему, используя AcquireTokenAsync
FYI, кажется, что они удалили эту функциональность из ADAL. источник
Чтобы выполнить аутентификацию с помощью комманды user username/password, я считаю, что вам придется использовать HttpClient и самостоятельно выполнить запрос на отправку.
Опубликовать в:
https://login.microsoftonline.com/yourdomain.onmicrosoft.com/oauth2/token
с:
resource={resource}&client_id={clientid}&grant_type=password&username={username}&password={password}&scope=openid&client_secret={clientsecret}
в запросе