2012-07-11 45 views
0

我現在正在處理一個問題,它涉及到從我們的LAN SharePoint服務器將多個PDF文件下載到我們的DMZ。WebClient Credentials SharePoint Intranet

我們正試圖完成的是一個「新聞傳播」類型的應用程序。它所做的是從SharePoint上傳的內容類型中獲取列表數據,然後將它們發佈到我們在DMZ上託管的外部網站,並鏈接到相應的pdf文件。我們使用了Sharepoint必須完成文本佈局的REST API,但我們現在遇到的問題是將上載文檔的.pdf從SharePoint網站複製到DMZ,因此我們可以將它們存儲在緩存中,用戶可以通過href訪問它們。

這是用於訪問SharePoint REST API的代碼。

 // Create the connection to sharepoint. Credentials are managed within web.config 
     SharePointListsREST.SharePointDataContext dc = new SharePointListsREST.SharePointDataContext(new Uri(ConfigurationManager.AppSettings["spUrl"])); 
     CredentialCache cc = new CredentialCache(); 
     cc.Add(new Uri(ConfigurationManager.AppSettings["spUrl"]), "NTLM", new NetworkCredential(ConfigurationManager.AppSettings["spUser"], ConfigurationManager.AppSettings["spPassword"], ConfigurationManager.AppSettings["spDomain"])); 
     dc.Credentials = cc; 

這很好用,它能夠驗證,抓取數據並顯示它。對於PDF下載功能,我們有這個。

private void GetPDF(string URL, string path) 
    { 
     if (System.IO.File.Exists(path)) 
      System.IO.File.Delete(path); 
     WebClient wc = new WebClient(); 
     CredentialCache cc = new CredentialCache(); 
     cc.Add(new Uri(ConfigurationManager.AppSettings["spUrl"]), "NTML", new NetworkCredential(ConfigurationManager.AppSettings["spUser"], ConfigurationManager.AppSettings["spPassword"], ConfigurationManager.AppSettings["spDomain"])); 

     wc.Credentials = cc; 

     wc.DownloadFile(URL, path); 
    } 

這完全不工作,並拋出一個401未授權error.However,如果你去嘗試去http://XX.XX.XX.XX/.../test.pdf你會被提示輸入用戶名/密碼訪問的PDF文件。輸入我的Windows憑據將使我可以訪問pdf。

我試過使用wc.UseDefaultCredentials = true;,但它也不起作用。有沒有人有任何想法,我怎麼能得到這個與webclient的工作?

這是IIS的錯誤日誌之一。

2012-07-11 00:56:12 XX.XX.XX.XX GET /Employee+Images/_t/sample.jpg - 80 - 192.168.200.12 - 401 2 5 0 

回答

0

模擬用戶和運行模擬的塊中整個Web客戶端的代碼是一個選項,當您在SharePoint網站使用Windows身份驗證。

看到這個問題How can I use Directory.CreateDirectory with a different user id?模擬用戶。

或者你只需​​運行Runas就可以運行整個流程 - 不需要更改代碼。

+0

嗯,我們嘗試在web.config中設置模擬,但我們仍然回來了相同的錯誤消息。經過我的經理的一些澄清,我們正在運行IIS 7,我們在日誌中得到的錯誤是401.2(我認爲)。 – 2012-07-11 20:31:09

相關問題