从服务器端c#代码在客户端系统上运行.exe

本文关键字:端系统 运行 exe 客户端 客户 服务器端 代码 | 更新日期: 2023-09-27 18:06:48

我想从我的c# asp.net网站在客户端系统上运行一个exe。当我用Process.Start()它抛出一个错误:

请求的操作需要提升。

如何设置运行该exe的权限?

从服务器端c#代码在客户端系统上运行.exe

您不能从服务器端代码在客户端机器上生成进程。

当您在服务器端代码中使用Process.Start时,它试图在网站所在的服务器上执行进程。如果你想在客户端计算机上创建进程,那么你需要为他们公开一个下载(而不是使用诡计,就像恶意网站可能会做的那样安装软件-优雅地,正常地(并获得许可)提供它),或者一个Silverlight应用程序或类似的东西。

最重要的是,您想要执行的代码(即使只是生成一个进程)必须驻留在客户端,并在那里执行。

你不能在这样的web服务器上运行应用程序。您必须通过提供EXE,安装文件或使用ClickOnce让用户下载应用程序。

或者您可以开发一个ActiveX控件,让浏览器自动从受信任的Internet区域下载。

下载后,使用证书(由受信任的(公司)根证书签名)进行适当的签名将避免用户收到是否希望允许安装/激活ActiveX控件的提示-

ActiveX控件随后可以执行交互式登录用户可以执行的任何操作。这意味着要实际安装需要提升的程序(Vista+上的UAC);但是,如果目标只是运行一个独立的可执行文件,那么您应该可以很好地运行。

这些都假设白帽在(更大的)公司设置中使用,因为它依赖于PKI基础设施和中央浏览器策略,仅举两个例子。* *

这会导致serverfault或superuser

上出现一些很好的问题。

我注意到你说你想在客户端上运行一个exe文件,但你没有明确地说exe在服务器上,你想把它推送到客户端。每个人似乎都认为是这样。

如果你有一些先决条件,你可以用一小段JavaScript很容易地完成这个任务:

  1. 可执行文件已经存在于客户端机器上。
  2. 所有客户端都在运行IE
  3. 您可以强制执行策略,将您的站点置于内部网或受信任站点区域。

基本上这意味着它是一个企业内部网应用程序。我认为这可能是情况,因为,如果你期望在公共应用程序中这样做,我会感到惊讶。

对于完成此操作的脚本,请参阅我对这个问题的回答:

如何让客户端机器上的程序从ASP运行?网络页面?