如何使用 C# 中的 CSOM 连接到 Office 365 上的 SharePoint?

How to connect to SharePoint on Office 365 with CSOM from C#?

我在连接到 Office 365 上的新开发 SharePoint Online 网站时遇到问题。我可以从浏览器查看该网站和列表,并且我已将 API 用户添加为网站管理员和一个 O365 管理员。我在调用 ClientContext.ExecuteQuery() 时不断收到 401 错误。任何建议表示赞赏。

不知道是我打错了URL还是用户没有权限,又或者是完全不同的东西。我已经测试了用户名和密码,因为如果我使用错误的密码,它会给我一个关于无效用户的不同错误。所以,我很确定我有正确的凭据。该用户已被设置为 O365 管理员,并已被授予 "Edit" 通过该控制台访问 SharePoint 网站的权限。我什至尝试过使用我自己的凭据,我是创建网站的人。

我的目标是最终从特定列表中获取列表项。但是,因为我做不到这么多,所以我还没有走得太远。

下面是来自控制台应用程序的一些示例代码:

ClientContext cc;
SecureString pw;

cc = new ClientContext("http://XXXX.sharepoint.com");
pw = new SecureString();
"XXXX".ToCharArray().ToList().ForEach(c => pw.AppendChar(c));
cc.Credentials = new SharePointOnlineCredentials("api@XXXX.onmicrosoft.com", pw);
cc.Load(cc.Web);
cc.ExecuteQuery();

试试这个:

ClientContext cc = new ClientContext("https://XXXX.sharepoint.com");
SecureString pass = new SecureString();

foreach (char c in "XXXX".ToCharArray();
    pass.AppendChar(c);

cc.Credentials = new SharePointOnlineCredentials("api@XXXX.onmicrosoft.com", pass);
cc.Load(cc.Web);
cc.ExecuteQuery();