- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 CSOM 时遇到了一些问题。
我正在尝试获取 Sharepoint 网站的标题,但不幸的是我收到此错误 => 远程服务器返回错误:(401) 未经授权。
using (var context = GetClientContext("https://tenant.sharepoint.com/"))
{
context.Load(context.Web, p => p.Title);
await context.ExecuteQueryAsync();
Console.WriteLine($"Title: {context.Web.Title}");
}
public ClientContext GetClientContext(string targetUrl)
{
ClientContext clientContext = new ClientContext(targetUrl);
clientContext.ExecutingWebRequest +=
delegate (object oSender, WebRequestEventArgs webRequestEventArgs)
{
string token = GetToken();
webRequestEventArgs.WebRequestExecutor.RequestHeaders["Authorization"] =
"Bearer " + token;
};
return clientContext }
public string GetToken()
{
IConfidentialClientApplication app;
var instance = "https://login.microsoftonline.com/{0}";
var tenant = "tenantId";
var authority = String.Format(CultureInfo.InvariantCulture, instance, tenant);
string[] scopes = new string[] { "https://tenant.sharepoint.com/.default" };
app = ConfidentialClientApplicationBuilder
.Create("clientId")
.WithClientSecret("secretId")
.WithAuthority(new Uri(authority))
.Build();
AuthenticationResult result = app.AcquireTokenForClient(scopes)
.ExecuteAsync().GetAwaiter().GetResult();
return result.AccessToken;
}
这是应用程序注册的权限 App Registration
但我可以从图形调用中获取它
最佳答案
如果要在 SharePoint Online CSOM 中使用“仅应用程序”权限,请使用以下 URL 注册 SharePoint 外接程序而不是 Azure AD:
https://tenant.sharepoint.com/_layouts/15/appregnew.aspx
然后使用 https://TenantName-admin.sharepoint.com/_layouts/15/appinv.aspx 中的此 xml 设置加载项权限:
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>
然后安装SharePointPnPCoreOnline使用Nuget打包并调用如下:
using OfficeDevPnP.Core;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Client;
string siteUrl = "https://tenant.sharepoint.com/sites/demo";
using (var cc = new AuthenticationManager().GetAppOnlyAuthenticatedContext(siteUrl, "[Your Client ID]", "[Your Client Secret]"))
{
cc.Load(cc.Web, p => p.Title);
cc.ExecuteQuery();
Console.WriteLine(cc.Web.Title);
};
这里是一个完整的演示供您引用:
Connect To SharePoint Online Site With App Only Authentication
关于c# - CSOM 在线共享点出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65706437/
我正在使用客户端对象模型方法C#,以便从包含子文件夹的文档库中检索所有列表项。我 checkout 了MSDN文档,并被困在为什么我无法获得字段属性,或者我什至没有正确执行此操作的问题上。 N
我在使用 CSOM 时遇到了一些问题。 我正在尝试获取 Sharepoint 网站的标题,但不幸的是我收到此错误 => 远程服务器返回错误:(401) 未经授权。 using (var context
我已经到了互联网的尽头。此资源的许多变体 technet set_and_get_a_multi-choice_field 我正在运行 O365 Sharepoint,我有一个多复选框列表或多选 we
我有一个任务计划,其中我连接到 Sharepoint 站点并使用 csom 脚本 C# 获取一些数据,并在处理后将邮件发送给用户。 我通过传递存储在 app.config 文件中的用户凭证来创建上下文
我使用 CSOM 在 C# 中编码,我的应用程序将模板 asp.net 页面上传到“/Pages/”库,我需要它在文件上传之前检查该位置是否存在同名文件(然后也许它可以返回一个 bool 值)。 我确
我在 SharePoint 2013 本地“站点页面”库中有一些 wiki 页面。我在库中创建了一个“优先级”列。我想从客户端访问页面属性。我知道这可以通过以下代码从服务器端实现: SPContext
我正在尝试从 SharePoint Online 域中检索网站集列表。 我正在使用 C# 和客户端对象模型。 以下代码仅返回 300 个网站集。 var tenant = new Tenant(ctx
我正在制作一个连接到 SharePoint 2013 的应用程序。我正在使用 CSOM 来处理 SharePoint。我想显示当前用户关注的站点(团队站点)的新闻源。 为了获取新闻源,我执行以下步骤:
我目前正在尝试通过 CSOM 提取 SharePoint 2010 网站集的文档历史记录。 我用来完成这个的代码在这里: using (var clientContext = new ClientCo
我正在尝试将我们的项目从在线项目加载到 .NET 应用程序中,同时我可以加载项目,但我遇到的一件事是加载我想要的所有列。我知道我可以使用 include 指定我想要加载的列,但我希望能够使用可以动态生
有谁知道如何使用 CSOM 更新分类项(例如术语组、术语集)名称大写?例如,有一个术语组名为'kelvin',如何将其更改为'Kelvin'? 这是我的代码, var termGroup = term
我找到了 SPWeb.SiteLogoUrl并期望在 CSOM 和 REST 中使用此属性。但是我没有找到。如何使用 CSOM 或 REST 获取 SiteLogoUrl? SP.js Microso
我在使用 的不同用户操作上调用了多种方法ClientContext . 在每个方法执行上创建它会导致性能问题。 因此,我将其添加为可重用性的静态变量,性能平均提高了 5 秒,但随后在某些方法中它开始给
我正在尝试使用客户端对象模型 (CSOM) 从 SharePoint 中提取所有项目信息。以下是我获取项目信息的方式: projectContext.Load(projectContext.Proje
此处的目标是从此PowerShell代码开始访问Web.Folders属性。 Connect-SPOnline –Url https://mysite.sharepoint.com; $web = G
如何检查当前用户是否是使用 SharePoint CSOM 的网站集管理员? 最佳答案 如何使用CSOM判断当前用户是否为站点管理员 SharePoint 2013 CSOM 使用User.IsSit
我正在通过自动托管应用程序使用 CSOM(客户端代码)创建网站/网站集。我需要打开站点审核,但似乎无法找到任何方法以编程方式执行此操作。 欢迎任何想法! 最佳答案 在 CSOM API v. 16.1
在 SharePoint Online 中,我在使用 CSOM (C#) 设置站点托管元数据列默认值时遇到问题。为简洁起见,我没有在我的代码中包含异常处理。这是我拥有的: // Code snippe
我需要从 Sharepoint 站点获取所有文档。我从获取所有文档库开始: private IEnumerable GetAllDocumentLibraries(ClientContext cont
我知道可以使用 PowerShell cmdlet Register-SPOHubSite 将站点注册为中心站点,但我无法找到通过 CSOM 执行此操作的选项。 有没有人能够使用 C# 做到这一点?
我是一名优秀的程序员,十分优秀!