Для тестирования в консольном приложении вы можете заменить этот код ниже:
static async Task AccessMicrosoftUserData()
{
string clientId = "Your application Application Id";
string secrect = "Your application secret Id";
string resrouce = "https://graph.microsoft.com";
string authority = "https://login.microsoftonline.com/YourTenantId";
// For example
// string authority = "https://login.microsoftonline.com/b6603c7be-a866-4666-ad87-e6921e61f999";
AuthenticationContext authContext = new AuthenticationContext(authority);
//Checking application authenticity
ClientCredential clientCredential = new ClientCredential(clientId, secrect);
AuthenticationResult authResult = await authContext.AcquireTokenAsync(resrouce, clientCredential);
//Generating Token with your credentails
var accessToken = authResult.AccessToken;
var graphServiceClient = new GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) => {
requestMessage
.Headers
.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return Task.FromResult(0);
}));
//You may encounter request denial here if you don't have resource access
Privilege
//To avoid this see the screen shot below.
var users = await graphServiceClient.Users.Request().GetAsync();
}
Теперь вызовите метод Main следующим образом:
static void Main(string[] args)
{
AccessMicrosoftUserData().Wait();
}
Пример для Web
var request = new HttpRequestMessage(HttpMethod.Post, "http://server.com/token");
request.Content = new FormUrlEncodedContent(new Dictionary<string, string> {
{ "client_id", "your client_id" },
{ "client_secret", "your client_secret" },
{ "grant_type", "client_credentials" }
});
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var payload = JObject.Parse(await response.Content.ReadAsStringAsync());
var token = payload.Value<string>("access_token");
Примечание: В указанном выше коде http://server.com/token
должна быть конечной точкой вашего токена, например https://login.microsoftonline.com/YourTenantID/oauth2/v2.0/token
Сложности реализации вы можете проверить здесь .Если вам нужно больше идей относительно разработки с нуля, вы также можете сослаться на this
Примечание: Вы можете столкнуться с отказом в запросе, если у вас нет доступа к ресурсам Привилегия Чтобы избежать этогосм. снимок экрана ниже: