Microsoft图形授权码流程-以编程方式从Web应用程序获取授权码

时间:2020-09-09 07:19:23

标签: c# asp.net oauth-2.0 azure-active-directory microsoft-graph-api

我已经使用C#中的Microsoft Graph API创建了用于创建或获取,删除,更新在线会议的Web应用程序。

根据链接Get access on behalf of a user获取授权码。当HttpClient为AuthCodeGeneration调用api时,它返回一个webview并返回响应,该响应包含浏览器中的Authcode。我必须手动复制它才能使用Microsoft Graph API执行CreateOrGet,删除,更新在线会议。

有什么办法可以通过C#中的代码来做到这一点?

1 个答案:

答案 0 :(得分:0)

您不需要自己处理“代码”和“访问令牌”。

安装Microsoft Graph .NET SDK并实施Authorization code provider以获取authProvider。使用authProvider生成graphClient

IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
    .Create(clientId)
    .WithRedirectUri(redirectUri)
    .WithClientSecret(clientSecret)
    .Build();

AuthorizationCodeProvider authProvider = new AuthorizationCodeProvider(confidentialClientApplication, scopes);

GraphServiceClient graphClient = new GraphServiceClient(authProvider);

var onlineMeeting = new OnlineMeeting
{
    StartDateTime = DateTimeOffset.Parse("2019-07-12T21:30:34.2444915+00:00"),
    EndDateTime = DateTimeOffset.Parse("2019-07-12T22:00:34.2464912+00:00"),
    Subject = "User Token Meeting"
};

await graphClient.Me.OnlineMeetings
    .Request()
    .AddAsync(onlineMeeting);