使用 MFA crom c# 应用程序进行身份验证共享点

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

我有一个在 Sharepoint 上运行良好的代码,但是该 sharepoint 具有多因素身份验证,我阅读了,发现我必须更改连接到 sharepoint 的方式。所以我安装了PnP。框架和这部分代码

 string siteUrl = "https://cconsultingspa.sharepoint.com/";
 string clientId = "MyclientId";
 string clientSecret = "pass?";
 SecureString securePassword = ConvertToSecureString(clientSecret);


 using (var cc = new AuthenticationManager().GetACSAppOnlyContext(siteUrl, clientId, clientSecret))
 {
 cc.Load(cc.Web, p => p.Title);
 cc.ExecuteQuery();
 Console.WriteLine(cc.Web.Title);

 };

但是它给了我这个错误

“令牌请求失败。” 远程服务器返回错误:(401) 未经授权

但用户名和密码在 MFA 禁用时有效

c# visual-studio sharepoint
1个回答
0
投票

据我所知,当您使用应用程序凭据进行连接 (GetACSAppOnlyContext) 时,MFA 不起作用。

此处的问题可能是应用程序无权访问目标 SharePoint 网站,即“https://cconsultingspa.sharepoint.com”

要解决此问题,您可以尝试导航到 appinv.aspx 页面并添加权限 XML 来直接授予应用程序对 SharePoint 网站的访问权限(请参阅此处的参考文档 - https://learn.microsoft.com/en-我们/sharepoint/dev/solution-guidance/security-apponly-azureacs

注意:使用 Azure ACS(访问控制服务)进行 SharePoint Online 已于 2023 年 11 月 27 日停用。停用意味着该功能将不会获得任何新投资,但仍受支持。有关更多信息,请访问 - https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins/retirement-announcement-for-azure-acs

如果上述方法有效,那么最佳实践是创建一个 EntraID 应用程序并授予其访问 SharePoint 数据的适当权限。

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