如何在 .net core 中使用 Microsoft Graph 访问共享邮箱

我有一个可以访问我的邮箱的应用程序。我按照本教程创建了应用程序:


https://docs.microsoft.com/en-us/graph/tutorials/aspnet?tutorial-step=1


然后我调整了应用程序来阅读邮件。这适用于我自己的邮件。但是,我需要访问一个共享收件箱,我可以访问该收件箱并且可以在我的 Outlook 中阅读电子邮件。


我尝试使用以下代码执行此操作:


public static async Task<IEnumerable<Message>> GetMailAsync()

        {

            var graphClient = GetAuthenticatedClient();



            var mail = await graphClient.Users["usersemail@somewhere.com"].MailFolders.Inbox.Messages.Request()

                .GetAsync();


            return mail;

        }

但是,我收到一个未经授权的错误:


授权错误 这是我的授权码:


private static GraphServiceClient GetAuthenticatedClient()

        {

            return new GraphServiceClient(

                new DelegateAuthenticationProvider(

                    async (requestMessage) =>

                    {

                        // Get the signed in user's id and create a token cache

                        string signedInUserId = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;

                        HttpContextWrapper httpContext = new HttpContextWrapper(HttpContext.Current);

                        TokenCache tokenStore = new SessionTokenStore(signedInUserId,

                            httpContext).GetMsalCacheInstance();


                        var idClient = new ConfidentialClientApplication(

                            appId, redirectUri, new ClientCredential(appSecret),

                            tokenStore, null);


                    }));

        }

我在应用程序中添加了权限应用程序权限的图像


谁能发现我在这里做错了什么?有些帖子认为它不能以这种方式完成(Microsoft Graph API .NET 无法读取共享邮件,Microsoft Graph API SDK .NET 问题获取其他用户的电子邮件),但我可以让它在图形资源管理器中工作。


任何帮助表示赞赏,包括关于如何改进我的问题的建议。


富国沪深
浏览 144回答 1
1回答

慕侠2389804

发现问题,我没有正确设置appSettings。我将“User.Read Mail.Read.Shared”添加到我的 PrivateSettings.Config 中,如下所示:&nbsp; &nbsp;<add key="ida:AppScopes" value="User.Read Calendars.Read" /><add key="ida:AppScopes" value="User.Read Mail.Read" /><add key="ida:AppScopes" value="User.Read Mail.Read.Shared" />希望这可以帮助某人。
打开App,查看更多内容
随时随地看视频慕课网APP