有没有办法使用jquery(客户端)打开RDP Connection窗口?
我的jquery代码如下,
$(function () {
$(".RDPLink1").live('click', function () {
var IPAddress = $(this).attr('id'); // ip or name of computer to connect
$.ajax({
type: 'post',
cache: false,
data: { strIPAddress: IPAddress },
url: '<%=Url.Action("OpenRDPWindow","Home") %>',
success: function (data) {
}
});
});
我调用 Home 控制器方法,名称为 OpenRDPWindow ,如
public void OpenRDPWindow(string strIPAddress)
{
Process objProcess = new Process();
string exe = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
if (exe != null)
{
objProcess.StartInfo.FileName = exe;
objProcess.StartInfo.Arguments = "/v " + strIPAddress; // ip or name of computer to connect
objProcess.Start();
}
}
其实我需要的是,当用户点击我页面中的href链接时,我们就是 需要打开基于IPAddress的RDP窗口......
在我使用VS2010的系统中,它运行良好&amp;它打开了RDP
基于IPAddress的窗口,因为我在服务器端(C#)编写了代码
到我的系统...
在IIS中部署项目后,用户单击href链接,即 RDP(mstsc.exe)在服务器机器上运行(我部署了我的机器人 应用程序)。
但我需要在用户机器(客户端)中打开RDP窗口......
我如何使用jquery或javascript解决这个问题? (或)有没有其他方法可以解决这个问题?
提前致谢.... @@@
答案 0 :(得分:4)
我按照以下步骤解决了这个问题,
1)Jquery代码是
$(function () {
$(".RDPLink1").live('click', function () {
var IPAddress = $(this).attr('id'); // ip or name of computer to connect
window.location.href="http://path/home/OpenRDP?address="+IPAddress ;
});
});
2)我创建了一个新的.aspx页面&amp;在GET方法(页面加载)中写下服务器端(C#)代码,以解决此问题
[HttpGet]
public ActionResult OpenRDP()
{
string address = Request.QueryString["address"];
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", string.Format("attachment; filename={0}.rdp", address));
Response.Output.Write(string.Format(@"
screen mode id:i:2
session bpp:i:32
compression:i:1
keyboardhook:i:2
displayconnectionbar:i:1
disable wallpaper:i:1
disable full window drag:i:1
allow desktop composition:i:0
allow font smoothing:i:0
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
full address:s:{0}
audiomode:i:0
redirectprinters:i:1
redirectcomports:i:0
redirectsmartcards:i:1
redirectclipboard:i:1
redirectposdevices:i:0
autoreconnection enabled:i:1
authentication level:i:2
prompt for credentials:i:0
negotiate security layer:i:1
remoteapplicationmode:i:0
alternate shell:s:
shell working directory:s:
gatewayhostname:s:
gatewayusagemethod:i:4
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
promptcredentialonce:i:1
drivestoredirect:s:E:;
use multimon:i:0
audiocapturemode:i:0
videoplaybackmode:i:1
connection type:i:2
redirectdirectx:i:1
use redirection server name:i:0", address));
Response.End();
return View();
}
它将从客户端的浏览器下载选项....打开RDP窗口。
所以,这是这个问题的一种解决方案......
答案 1 :(得分:1)
我如何使用jquery或javascript解决这个问题?
等一下,您正在服务器上打开进程,而不是在客户端计算机上打开进程。这就是你的应用程序不起作用的原因。出于安全原因,您无法在客户端计算机上启动进程。通过javascript实现此任务可能非常具有挑战性。诸如LogMeIn
之类的公司已经实现了这样的接口,但是有多年的工作落后,而不是你可能希望在几行代码中实现的东西,有人会在Stack Overflow上发布你: - )
有些可能性包括using an ActiveX,这显然意味着您可以控制您的客户环境。另一种可能性是使用在Full Trust中运行的Silverlight 5 Out-Of-Browser应用程序,它允许您在客户端上启动进程,但它显然与第一个解决方案具有相同的限制,它只是ActiveX现在是一种过时的技术。