请帮助我如何从客户端打开命令提示符。当我点击按钮时,它应该打开命令提示符。我在我的电脑上试过,它在开发环境中工作,但在IIS中部署时却没有打开。
代码:
var Processstartinfo = new ProcessStartInfo
{
FileName = "cmd"
};
Process process = Process.Start(Processstartinfo);
答案 0 :(得分:5)
asp.net在服务器上运行。我怀疑你是在本地运行cassini,所以你的服务器桌面和客户端桌面是一样的。您正在做的是在服务器上打开命令提示 ;如果你考虑它,这是一个有趣的DDOS攻击面(即不要这样做)。
简短回答:你不能这样做。没有浏览器(或者应该......我会考虑IE; p)允许这样做。客户端操作系统甚至不需要支持命令提示符,也不需要.NET;即使这样,很少有浏览器会让你产生一个过程。
答案 1 :(得分:1)
您需要创建一个假的命令提示符才能执行此操作。正如Marc所说,它引入了巨大的安全风险,我永远不会这样做。
要解决此问题,您需要重定向标准输入/输出,以便您可以读取/写入它们。 Here is an example。创建命令进程并将Process
对象保存在会话变量中。
在客户端添加<div id="commandOutput"></div>
和<input type="text" name="command" /><input type="submit" value="Execute command" />
。使用jquery或类似方法挂钩按钮单击事件。
使用ajax提交表单。通过将命令写入会话变量中保存的stdin
对象中的Process
来执行该命令。从标准输出读取并将结果返回给客户端,客户端使用jQuery或其他东西将其添加到commandOutput
div。
应该这样做。请注意,有权访问的任何人都可以与您的服务器进行 任何 。