我有一个.net核心Web应用程序,该应用程序是使用内置模板构建的,用于使用Office365帐户进行身份验证。该应用程序运行正常。我有clientID,client Secret,azure注册了应用程序,在appsettings json等中具有正确的作用域等。我可以使用Office 365帐户登录。我不能做的是以登录用户身份访问图形API。
所有示例都谈到创建GraphServiceClient graphClient = new GraphServiceClient(authProvider);但是这些示例都不适合Visual Studio模板。
如何使用登录用户访问图形API?
通常来说,您需要先Install the Microsoft Graph .NET SDK。
然后您可以使用GraphServiceClient graphClient = new GraphServiceClient(authProvider)
,应该先使用Choose a Microsoft Graph authentication provider。
在这种情况下,您想使用登录用户访问图形API。因此,您应该选择Authorization code provider。
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithRedirectUri(redirectUri)
.WithClientSecret(clientSecret) // or .WithCertificate(certificate)
.Build();
AuthorizationCodeProvider authProvider = new AuthorizationCodeProvider(confidentialClientApplication, scopes);