2011-02-26 114 views
1

運行exe文件我在SharePoint Web部件是應該啓動計算器單擊時按鈕:從SharePoint Web部件

protected void Button1_Click(object sender, EventArgs e) 
{ 
     Process process = new Process(); 
     process.StartInfo = new ProcessStartInfo("Calc.exe"); 

     process.Start(); 
} 

然而,當單擊按鈕時,沒有任何反應。有人能告訴我如何從Sharepoint Web部件啓動應用程序嗎?

回答

5

坦率地說,這是不可能的。您編寫的代碼在Web應用程序用戶的安全上下文中的SharePoint服務器上執行。因此,如果發生任何事情,將爲Web應用程序用戶打開一個計算器,當然不會爲您的用戶開啓。

如果你想做這樣的事情,你必須恢復到客戶端腳本技術,例如, SilverlightJavaScript。但是,您必須處理權限問題,然後腳本通常無法訪問本地硬盤以提高安全性。

+0

但是我可以使用上面的代碼從一個正常的asp.net網頁啓動calc.exe這大概具有相同的安全限制(?) – Calanus 2011-02-26 08:25:15

+2

編號SharePoint在標準ASP.NET Web應用程序中具有許多安全限制。如果您在嘗試這樣的請求後檢查ULS日誌,則會看到錯誤。如果您希望在客戶端打開應用程序,您唯一的選擇就是使用JavaScript或Silverlight,就​​像@spa所說的那樣。 – 2011-02-26 11:41:52

+0

最好我開始學習JavaScript,然後Silverlight將永遠不能運行本地exe文件 – Calanus 2011-02-26 11:45:40

2

這對於從網頁運行可執行文件非常不可取,因爲這需要您將瀏覽器安全設置降低到可能危及客戶端PC的級別,因爲幾乎可以下載和執行任何軟件,而無需用戶甚至知道這一點。 正如在前面的答案中指出的那樣,您編寫的代碼將在服務器上運行計算器,而不是客戶端。它在你的開發機器上工作,因爲它既是服務器也是客戶機,這在現實世界中不起作用。唯一的方法是使用一些客戶端代碼,如Javascript或Silverlight,但我不會推薦這樣做。最好的選擇是將瀏覽器託管的計算器直接添加到您的Web部件,例如使用jQuery:第一個搜索結果:http://keith-wood.name/calculator.html