2012-06-13 72 views
1

我試圖從駐留在Intranet上的頁面獲取數據。 Intranet基於SharePoint。地址如下所示:http://collab.intranet.com/Pages/Default.aspx從應用程序訪問SharePoint Intranet頁面

我正在使用HTML Agility Pack(.NET)來獲取數據,這是我在外部網頁上工作的數據,而不是內部網。我可以通過瀏覽器訪問Intranet頁面。

編輯:所以問題是:如何授予訪問需要訪問SharePoint Intranet頁面的程序的權限?

我使用的檢索數據的代碼(C#):

String webpage = "http://collab.intranet.com/Pages/Default.aspx"; 
String mainTarget = "table"; 
String mainAttribute = "id"; 
String mainId = "activeProjects"; 

var webGet = new HtmlWeb(); 
var document = webGet.Load(webpage); 

var partOfWebpage = from completeWebpage in document.DocumentNode.Descendants(mainTarget) 
          where 
           completeWebpage.Attributes[mainAttribute] != null && 
           completeWebpage.Attributes[mainAttribute].Value == mainId && 
           completeWebpage.Attributes[mainAttribute].Value != null 
          select completeWebpage.InnerHtml; 
+0

你能告訴我們一些代碼嗎? –

+3

我打賭認證失蹤。你可以使用WebClient.Download方法獲取內容嗎?發生錯誤時的http狀態是什麼? –

+0

Steve B,我相信你是對的。我用WebClient方法嘗試了它,並收到**「遠程服務器返回錯誤:(401)未經授權的」**。我能做些什麼來授權C#會話? 我已經添加了我正在使用的代碼。 –

回答

2

沒關係,我發現了一些周圍挖掘和試&錯誤後的解決方案。由於Intranet基於SharePoint,因此可以使用WebService庫並調用「SharePoint列表」。但我也發現,下面的代碼給我訪問SharePoint頁面:

WebClient client = new WebClient(); 
client.Credentials = CredentialCache.DefaultCredentials; 

當時我能夠下載網頁與客戶端的幫助字符串,然後將其通過該HTML敏捷性包做我想做的事。

+0

如果您對此感到滿意,請將其標記爲答案。 –

+0

是的,抱歉,忘記了,因爲我必須等待24小時才能接受答案:) –

相關問題