我有一个用 C# 编写的控制台应用程序,我们用它来使用交换服务连接到 Outlook 邮箱,以读取收件箱中的电子邮件。最近,我们已通过 MFA 迁移到 Azure AD,更改后,我的代码抛出 401 未经授权的错误。任何人都可以建议一种解决方法来验证控制台以连接和读取邮件而无需任何用户依赖性。
正常的WebClient功能,使用用户名和密码连接到outlook。 https://outlook.office365.com/EWS/Exchange.asmx用作代码中的 Service 对象 url。
最佳答案
使用 ADAL.NET 或 MSAL.NET 和 OAuth2 身份验证到 EWS:https://learn.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-authenticate-an-ews-application-by-using-oauth这将处理您设置的任何 MFA。 (我假设您的应用程序在用户存在的情况下运行,因此能够进行身份验证。如果这是一个无人值守的应用程序,并且使用硬编码的用户凭据运行,那么您必须允许该用户不使用 MFA 或更改应用程序使用服务主体登录,仍然使用上面的 OAuth2)。
关于c# - 有没有办法通过控制台应用程序 C# 连接启用 Azure AD MFA 的 Outlook 邮箱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55918145/