我正在尝试创建一个可以从 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 查询的请求期间被传递,但服务器拒绝了它。不确定这种方法哪里出了问题?