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

时间:2015-10-28 09:55:16

标签: c# sharepoint authorization office365 csom

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

document.GetImagePreviewUrl(width, height, clientType);

这只会返回一个空的ClientResult。我不确定以clientType值输入什么。

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

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

  • 找出要输入的内容clientType并以此方式检索预览网址。
  • 了解如何告诉SharePoint我是以编程方式授权的(例如,使用WebClient和标头)。

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

1 个答案:

答案 0 :(得分:1)

我已经找到了办法,导致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);