2011-02-26 113 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