从服务器端c#代码在客户端系统上运行.exe
我想从我的c#asp.net网站上运行客户端系统上的exe。 当我使用Process.Start()
它会抛出一个错误:
请求的操作需要提升。
如何设置运行该exe的权限?
您无法从服务器端代码在客户端计算机上生成进程。
在服务器端代码中使用Process.Start
时,它会尝试在托管网站的服务器上执行该过程。 如果你想在客户端计算机上创建进程,那么你需要为它们公开下载(而不是使用subterfuge,就像恶意站点可能会安装软件一样 – 优雅地提供它,并且通常(并且允许)),或者Silverlight应用程序或类似的东西。
最重要的是,您要执行的代码(即使只是为了生成进程)必须驻留在客户端上,并在那里执行。
您无法从这样的Web服务器运行应用程序。 您必须让用户通过提供EXE,设置文件或使用ClickOnce来下载应用程序。
或者,您可以开发一个ActiveX控件,您可以让浏览器从受信任的Internet区域自动下载。
下载后,使用证书进行正确签名(从可信(公司)根证书签名)将避免用户提示询问他是否希望允许ActiveX控件安装/激活 –
ActiveX控件随后可以执行交互式登录用户可以执行的任何操作。 这意味着要实际安装一个程序,你需要提升(Vista +上的UAC); 但如果目标只是运行一个独立的可执行文件,那么你应该很高兴。
这一切都假定在(更大的)企业环境中有白帽用途 ,因为它依赖于PKI基础设施和中央浏览器策略,仅举两例。**
这确实会导致一些关于serverfault或超级用户的优秀问题
我注意到你说你想在客户端上运行一个exe文件,但你没有明确说明exe是在服务器上而你想将它推送到客户端。 每个人似乎都假设是这样的。
如果您有一些先决条件,您可以使用小型JavaScript轻松完成此任务:
- 可执行文件已存在于客户端计算机上。
- 您的所有客户都在运行IE
- 您可以实施策略以将您的站点置于Intranet或受信任的站点区域中。
所以基本上这意味着它是一个企业内部网应用程序。 我假设这可能就是这种情况,因为,如果您期望使用公共应用程序执行此操作,我会感到惊讶。
要完成此操作的脚本,请参阅我对此问题的回答:
如何在客户端计算机上获取程序以从ASP.NET页面运行?
上述就是C#学习教程:从服务器端c#代码在客户端系统上运行.exe分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1043472.html