Мне нужно выбрать членов группы из Azure Active Directory, используя Microsoft Graph API.Для этого мне нужен токен авторизации.У меня есть метод в .NET, который аутентифицируется в API как пользователь, и я использую метод UserPasswordCredential для получения токена доступа (путем передачи имени пользователя и пароля).
private static string aadInstance =
ConfigurationManager.AppSettings["ida:AADInstance"];
private static string tenant =
ConfigurationManager.AppSettings["ida:Tenant"];
private static string clientId =
ConfigurationManager.AppSettings["ida:ClientId"];
private static string graphResourceId =
ConfigurationManager.AppSettings["ida:GraphResourceId"];
private static string graphApiVersion =
ConfigurationManager.AppSettings["ida:GraphApiVersion"];
private static string graphApiEndpoint =
ConfigurationManager.AppSettings["ida:Gra`phEndpoint"];
private static string appKey =
ConfigurationManager.AppSettings["ida:appKey"];
private static string authority =
String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);
Uri redirectUri = new
Uri(ConfigurationManager.AppSettings["ida:RedirectUri"]);
private AuthenticationContext authContext = null;
private ClientCredential clientCredential = null;
public MainWindow()
{
InitializeComponent();
authContext = new AuthenticationContext(authority);
clientCredential = new ClientCredential(clientId, appKey);
CheckForCachedToken();
}
public async void GetToken()
{
AuthenticationResult result = null;
try
{
UserCredential uc = new UserCredential("username", "password");
result = await authContext.AcquireTokenAsync(graphResourceId, clientId, uc);
}
catch (AdalException ex)
{
if (ex.ErrorCode != "user_interaction_required")
{
MessageBox.Show(ex.Message);
}
return;
}
}
Но когда я обновил решение до .Net Core, это нарушило класс .ie UserPasswordCredential, который не поддерживается в ядре .NET.Есть ли обходной путь для этого?