使用 .NET Standard 中的 CSOM 访问 SharePoint API

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

我正在尝试创建一个可以从 Office 365 访问 SharePoint 站点的 .NET 核心控制台应用程序。我正在使用 PnP 框架中推荐的身份验证管理器来尝试建立连接。我按照 MSDN 说明使用 CSOM for .NET Standard 的现代身份验证,但我仍然得到未经授权的变体:

System.Net.WebException:“远程服务器返回错误:(401) 未经授权。”

代码如下:

var authManager = new AuthenticationManager(appId, tenantId: tenantId);

var app1 = ConfidentialClientApplicationBuilder.Create(appId)
    .WithClientSecret(appSecret)
    .WithAuthority(new Uri(authority))
    .WithRedirectUri(redirectUri)
    .Build();
var resource = $"{siteUri.Scheme}://{siteUri.Authority}";
var scopes = new [] { $"{resource}/.default" };
var result = await app1.AcquireTokenForClient(scopes).ExecuteAsync();
var accessToken = result.AccessToken;
using var context = authManager.GetAccessTokenContext(siteUri.ToString(), accessToken);

var web = context.Web;
context.Load(web, w => w.Title);
context.ExecuteQuery();

我能够成功获取访问令牌,并且我看到它在执行 CSOM 查询的请求期间被传递,但服务器拒绝了它。不确定这种方法哪里出了问题?

.net-core sharepoint sharepoint-online .net-standard csom
© www.soinside.com 2019 - 2024. All rights reserved.