有没有办法通过控制台应用程序C#连接Azure AD MFA启用的Outlook邮箱?

问题描述 投票:0回答:1

我有一个用c#编写的控制台应用程序,我们用它来连接到Outlook邮箱,使用交换服务从收件箱中读取电子邮件。最近,我们已经使用MFA迁移到Azure AD,在此更改之后,我的代码丢失了401 Unauthorized错误。任何人都可以建议一种解决方法来验证控制台连接和读取邮件,而无需任何用户依赖。

正常的WebClient函数,它使用用户名和密码连接到outlook。 https://outlook.office365.com/EWS/Exchange.asmx在代码中用作服务对象url。

c# azure-active-directory console-application exchangewebservices multi-factor-authentication
1个回答
1
投票

使用ADAL.NET或MSAL.NET和OAuth2 authn到EWS:https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-authenticate-an-ews-application-by-using-oauth这将处理您设置的任何MFA。 (我假设你的应用程序是在用户在场的情况下运行的,因此能够进行身份验证。如果这是一个没有参与的应用程序运行硬编码的用户凭据,你将不得不允许该用户不使用MFA或更改应用程序使用服务主体登录,仍然使用OAuth2,如上所述)。

© www.soinside.com 2019 - 2024. All rights reserved.