我需要阅读位于SharePoint 2013库中的PDF。
我可以从本地文件夹中读取PDF,但不能从库中读取。
具体来说,我需要在PDF中搜索某些关键字的文本,然后根据条件将文件从当前库移动到另一个SharePoint库。
我还发现我从下面的代码中收到错误:
PdfReader pdfReader = new PdfReader("http://mysharepointsite.com/MyDocumentLibrary/MyFile.pdf");
错误是“远程服务器返回错误:(401)未经授权。”
任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:1)
当使用网址实例化PdfReader
时,它会使用System.Net.WebRequest
对象并将Credentials
设置为CredentialCache.DefaultCredentials
,相关的行(from here)是下面:
WebRequest wr = WebRequest.Create(url);
wr.Credentials = CredentialCache.DefaultCredentials;
Stream isp = wr.GetResponse().GetResponseStream();
如果您想按原样使用PdfReader
,则需要操纵CredentialCache.DefaultCredentials
。但是,这是一个只读属性,因此您可能需要实际设置IIS以模拟当前登录的用户。
另一种选择是不使用url
方法,而是编写自己的代码,直接访问文件系统或使用您自己的身份验证规则下载文件,并将该PDF传递给PdfReader
构造函数
最终,这不是iTextSharp问题,而是IIS / SharePoint / .Net问题。要解决更多问题,我们需要知道此代码在什么上下文中运行。它是Web服务器还是桌面应用程序?应用程序的上下文是否具有与SharePoint通信的权限?