Кажется, вы пытаетесь получить токен доступа, используя протокол аутентификации ROPC
. Вот пример.
Фрагмент кода:
Класс токенов:
public class AccessTokenClass
{
public string token_type { get; set; }
public string expires_in { get; set; }
public string resource { get; set; }
public string scope { get; set; }
public string access_token { get; set; }
public string refresh_token { get; set; }
}
Метод токена:
private async Task<string> GetTokenByROPCFormat()
{
string tokenUrl = $"https://login.microsoftonline.com/YourTenantIdOrName/oauth2/token";
var tokenRequest = new HttpRequestMessage(HttpMethod.Post, tokenUrl);
tokenRequest.Content = new FormUrlEncodedContent(new Dictionary<string, string>
{
["grant_type"] = "password",
["client_id"] = "b603c7be-a866--e6921e61f925",
["client_secret"] = "Vxf1SluKbgu4PF0Nf3wE5oG",
["resource"] = "https://graph.microsoft.com",
["username"] = "kironmemb@MyTenant.onmicrosoft.com",
["password"] = "@Mypassword"
});
dynamic json;
dynamic results;
HttpClient client = new HttpClient();
var tokenResponse = await client.SendAsync(tokenRequest);
json = await tokenResponse.Content.ReadAsStringAsync();
results = JsonConvert.DeserializeObject<AccessTokenClass>(json);
Console.WriteLine("Your Refresh Token=>{0}", results.access_token);
// New Block For Accessing Data from API
HttpClient newClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/me");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", results.access_token);
HttpResponseMessage response = await newClient.SendAsync(request);
string output = await response.Content.ReadAsStringAsync();
return output;
}
Примечание: Пожалуйста, обратите внимание на следующие пункты:
поток учетных данных клиента:
В этом случае вы можете реализовать Client credential grant flow
: вы можете получить полный фрагмент кода для этого потока аутентификации здесь
Если у вас все еще есть какие-либо вопросы, не стесняйтесь делиться благодарностями и счастливым кодированием!