0

我正在尝试连接到可以在浏览器中打开和导航的 Sharepoint 站点,因此我确实拥有权限。但是在我的 .NET Framework 4.7.2 控制台应用程序中,我得到“401 未授权”。我错过了什么?我正在使用“Microsoft.SharePoint.Client.Online.CSOM”nuget 包,不确定这是否正确,但只有在那里我有其他帖子推荐使用的“SharePointOnlineCredentials”。

var siteUrl = "https://mycompany.sharepoint.com";
var context = new ClientContext(siteUrl);
var securePassword = new NetworkCredential("", "mypw").SecurePassword;
context.Credentials = new SharePointOnlineCredentials("myusername@mydomain", securePassword);
var web = context.Web;

context.Load(web);
context.ExecuteQuery(); // 401 UNAUTHORIZED

当我改用“Microsoft.SharePointOnline.CSOM”包时,我收到此错误:

“无法联系网站“https://mycompany.sharepoint.com/”或该网站不支持 SharePoint Online 凭据。响应状态代码为“未授权”。响应标头为“X-SharePointHealthScore=0,X- MSDAVEXT_Error=917656;访问+拒绝。+之前+打开+文件+in+this+location%2c+you+must+first+browse+to+the+web+site+and+select+the+option+to+login +自动”

直到现在,我找不到任何有用的东西。

我是否需要在 Azure AD 中注册应用程序,还是仅 .NET Standard 需要注册?

4

1 回答 1

0

它现在正在使用“ PnP.Framework ” nuget 包和以下代码:

var credentials = new System.Net.NetworkCredential("myusername@mydomain", "mypw");
var authManager = new AuthenticationManager(credentials.UserName, credentials.SecurePassword);
using (var context = authManager.GetContext("https://mycompany.sharepoint.com"))
{
    var web = context.Web;
    context.Load(web, w => w.Id, w => w.Title, w => w.Url);
    context.ExecuteQuery();
}
于 2021-10-02T11:08:14.137 回答