在 .Net 6 环境中使用pnp.Framework时。我需要经过身份验证的客户端上下文来获取 Sharepoint 数据,但在运行context.ExecuteQuery()时面临 403forbidden 。
我想使用 clientId 和 clientSecret 身份验证模式将数据从我的客户端获取到我的环境,但面临 403 禁止请求。
我在特定的 Azure Active Directory 中注册了 App 并添加了以下权限。
using PnP.Framework;
using System.Security;
using System.Web;
namespace SharePointOnlinePNPProject
{
public class Program
{
static async Task Main(string[] args)
{
string appID= "appId/clientId";
string tenantId = "<tenantId>";
string clientSecret = "";
string queueTestingLink = "Input sharepoint url";
Uri site = new Uri("https://clientDomain.sharepoint.com");
string filePath= "/Shared Documents/Case Studies"
SecureString password = new SecureString();
foreach (char c in passcode)
{
password.AppendChar(c);
}
var scopes = new string[] { hostLink + ".default" };
try
{
using (var context = new AuthenticationManager().GetACSAppOnlyContext(site.OriginalString, appID, clientSecret))
{
var folder = context.Web.GetFolderByServerRelativeUrl(filePath);
context.Load(folder);
context.ExecuteQuery();
Console.WriteLine(folder.Name);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}