gpt4 book ai didi

使用 token 的 C# CSOM Sharepoint 访问

转载 作者:太空宇宙 更新时间:2023-11-03 15:39:57 25 4
gpt4 key购买 nike

我一直在努力让访问 token 与我们的 Sharepoint 网站一起使用,但仍然没有成功。

问题是当我使用 SharepointOnlineCredentials 访问我们的网站时它工作正常,我可以按如下方式查询共享点并且这有效但我想使用对我不起作用的新 token 内容

using (ClientContext context = new ClientContext(sharepointSiteUrl))
{
context.Credentials = GetCredentials();
var web = context.Web;
context.Load(web, w => w.Title);
context.ExecuteQuery();
if (context.Web.IsPropertyAvailable("Title"))
{
Console.WriteLine("Found title");
}
Console.WriteLine("Title: {0}", web.Title);
}

private static SharePointOnlineCredentials GetCredentials()
{
SecureString password = new SecureString();
foreach (char c in "MyPassword".ToCharArray()) password.AppendChar(c);
return new SharePointOnlineCredentials("myname@mycompany.com", password);
}

所以现在对于不起作用的代码

authContext = new AuthenticationContext(authority, new FileCache());

ClientCredential clientCredentials = new ClientCredential(clientId, clientSecret);
AuthenticationResult authenticationResult = authContext.AcquireToken(resource, clientCredentials);
Console.WriteLine("Token Type: {0} \nExpires: {1} \nToken: {2}", authenticationResult.AccessTokenType, authenticationResult.ExpiresOn, authenticationResult.AccessToken);

using (ClientContext context = TokenHelper.GetClientContextWithAccessToken(sharepointSiteUrl, authenticationResult.AccessToken))
{
var web = context.Web;
context.Load(web);
context.ExecuteQuery();
if (context.Web.IsPropertyAvailable("Title"))
{
Console.WriteLine("Found title");
}
Console.WriteLine("Title: {0}", web.Title);
}

现在,当我运行它时,web.Title 会抛出错误,context.Web 会显示“无法在对象实例上找到方法。

调试器中的 web.Title 还声明“属性或字段‘Title’尚未初始化。尚未请求或请求尚未执行。可能需要明确请求。'

我真的很想得到一些帮助,因为这对我来说是不可能的。谢谢:)

我是否需要了解或授予其他地方的访问权限?奇怪的是第一个有效!

最佳答案

在第一个示例中,您明确请求来自 CSOM 端点的 Title 属性:

context.Credentials = GetCredentials();
var web = context.Web;
context.Load(web, w => w.Title); // explicitly requesting the Title property
context.ExecuteQuery();

而在第二个示例中没有 context.Load(web, w => w.Title);

也许这就是问题所在?

关于使用 token 的 C# CSOM Sharepoint 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30596593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com