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

C# 如何使用SharePoint CSOM获取文档预览图像,c#,sharepoint,authorization,office365,csom,C#,Sharepoint,Authorization,Office365,Csom,我想以编程方式从SharePoint检索文档的缩略图。我想做的是: document.GetImagePreviewUrl(width, height, clientType); 这只返回一个空的ClientResult。我不确定输入什么作为clientTypevalue 我还尝试以编程方式使用该方法(通过使用WebClient并下载该文件)。但这只是返回一个403响应 我在这里看到的可能解决方案如下: document.GetImagePreviewUrl(width, height, cl

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

document.GetImagePreviewUrl(width, height, clientType);
这只返回一个空的
ClientResult
。我不确定输入什么作为
clientType
value

我还尝试以编程方式使用该方法(通过使用
WebClient
并下载该文件)。但这只是返回一个
403
响应

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

document.GetImagePreviewUrl(width, height, clientType);
  • 找出作为
    clientType
    输入的内容,并通过这种方式检索预览url
  • 了解如何告诉SharePoint我已通过编程获得授权(例如使用
    WebClient
    和标题)

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

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