2011-01-21 117 views
1

我管理一個內部SharePoint門戶(Moss 2007),其中有一些Web部件,其中一些從雅虎新聞中獲取RSS提要,而另一些則從雅虎財經(每日股市圖表)獲取,而另一個則與來自NOAA的當前天氣。所有這些工作除了雅虎新聞。我得到的錯誤是:代理身份驗證問題

The remote server returned an error: (407) Proxy Authentication Required.

但是,如果我在我的dev的盒子(Win 7的)(VS2010)作爲一個Web應用程序在本地運行代碼,新進工作正常。我明白這是一個身份驗證問題,但我無法從我們的IT安全人員那裏得到任何幫助。

服務器和我的工作站之間的區別在於我使用磁卡登錄並根據域進行身份驗證。我的電腦使用的瀏覽器會經過一個代理,該代理列出了一些例外,包括SharePoint門戶。檢查本地地址的繞過代理。服務器本身被鎖定在任何直接(或通過代理)互聯網訪問上,因此認證請求必須被編碼。

我沒有寫這段代碼,但它在一臺服務器上正常工作,但不會在我的SharePoint服務器上。我一直在努力比較設置,並發現它在用作Web小部件的服務器上工作正常。該網站使用域帳戶使用模擬。如果我在SharePoint中使用模擬,我將使用模擬帳戶登錄,而不是使用憑據登錄。你還在嗎?

所以這段代碼獲取,但沒有任何憑據信息反饋的代理服務器信息:

WebRequest myRequest = WebRequest.Create(rssURL); 
string[] arrProxy = System.Configuration.ConfigurationManager.AppSettings["ProxyServer"].Split(new Char[] { ',' }); 
myRequest.Proxy = new System.Net.WebProxy(arrProxy[0], Convert.ToInt32(arrProxy[1])); 

WebResponse myResponse = myRequest.GetResponse(); 

Stream rssStream = myResponse.GetResponseStream(); 
XmlDocument rssDoc = new XmlDocument(); 
rssDoc.Load(rssStream); 

XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item"); 

回答

1

你可以設定Credentials上的要求:

HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url); 
request.Credentials = new NetworkCredential("username", "password", "domain"); 

我想與您的帳戶,或讓IT人員創建一個特殊的「服務器 - web訪問」帳戶。

+0

有一個這樣的帳戶。 – Risho 2011-01-21 16:55:48