c# - 如何使用 SharePoint CSOM 获取文档预览图像

标签 c# sharepoint authorization office365 csom

我想以编程方式从 SharePoint 检索文档的缩略图。我想做的是:

document.GetImagePreviewUrl(width, height, clientType);

这仅返回一个空的ClientResult。我不确定要输入什么作为 clientType 值。

我也尝试过使用this以编程方式(通过使用 WebClient 并下载文件)。但这只会返回 403 响应。

我在这里看到的可能的解决方案如下:

  • 弄清楚要输入的 clientType 内容并以这种方式检索预览网址。
  • 弄清楚如何告诉 SharePoint 我已通过编程方式获得授权(例如使用 WebClient 和 header )。

我确实需要有关这两个选项的一些帮助,我不知道从哪里开始,因为这两个选项都没有很好的记录。

最佳答案

我已经找到了一种方法,403错误是因为sharepoint不知道我是谁而引起的。经过一番研究和摆弄,我发现您发送到预览页面的请求包含身份验证 cookie。这个cookie可以通过使用这段代码的代码来生成:

// Create an authentication cookie which we can send with the request so sharepoint knows who we are.
var authCookie = credentials.GetAuthenticationCookie(new Uri(imageUrl));
client.Headers.Add(HttpRequestHeader.Cookie, authCookie);
// Download the image data to a byte array
image = client.DownloadData(imageUrl);

关于c# - 如何使用 SharePoint CSOM 获取文档预览图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33387858/

相关文章:

c# - 如何在移动浏览器中使用 window.onscroll

sharepoint - 我应该使用 Sharepoint Number 列类型来存储货币值吗?

php - 如何在 Laravel 中使用主密码登录用户?

c# - 如何在 C# 中引用 Ghostscript DLL

c# - 等待持久实体值发生变化

c# - 如何将 XML 读入 DataTable?

web-services - MonoTouch、Sharepoint Web 服务和 xs :any

javascript - JQuery 根据 HTML 下拉选择查找并替换 URL 中的查询字符串

oauth - LinkedIn OAuth2 撤销/使 token 无效

asp.net-mvc - 鉴于以下要求,我想推出自己的身份验证/授权系统是不是错了?