Я пытаюсь сбросить пароль для зарегистрированного пользователя в Azure Ad b2c в приложении форм xamarin, подобном этому.
private static async Task<string> AcquireTokenForApplicationAsync(string clientId, string clientSecret)
{
AuthenticationContext authenticationContext = new AuthenticationContext($"https://login.microsoftonline.com/{GlobalSettings.Tenant}");
ClientCredential clientCred = new ClientCredential(clientId, clientSecret);
AuthenticationResult authenticationResult =
await authenticationContext.AcquireTokenAsync(
"https://graph.microsoft.com",
clientCred);
string token = authenticationResult.AccessToken;
return token;
}
public async Task<User> ChangePasswordAsync(string oldPassword,string newPassword, string objectId)
{
try
{
var graphClient = new GraphServiceClient(
new DelegateAuthenticationProvider(async (requestMessage) =>
{
var token = await AcquireTokenForApplicationAsync(ResetPasswordClientId, ResetPasswordClientSecret);
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
System.Diagnostics.Debug.WriteLine("Bearer Token: " + token);
}));
await graphClient.Me.ChangePassword(oldPassword, newPassword).Request().PostAsync();
return new User();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("Error Calling the Graph API: \n" + ex.Message);
return null;
}
}
Как получить код авторизации для сброса пароля? Я предоставил область применения при регистрации Directory.AccessAsUser.All.
Я ссылался на это, сделал все как описано, за исключением того, что не удалось получить код авторизации или любой другой способ сделать это.