检测是否有人使用远程桌面

时间:2013-04-25 18:58:29

标签: php rdp citrix

PHP中是否有办法了解某人是否从Windows终端服务/ Citrix / RDP远程桌面环境中连接到我的网站?

当有人通过远程桌面连接使用IE9连接到某个人时,我的网络应用程序遇到了一些严重的性能问题。我知道我应该找到这些问题的原因并相信我。然而我发现由于某种原因切换到IE8兼容模式可以解决问题。所以暂时我想检测是否有人通过远程桌面连接使用IE9连接到我的网站,这样我就可以强制使用IE8兼容模式了。

对于我的Web应用程序在远程桌面IE9中速度如此之慢的任何想法也是受欢迎的。我的Web应用程序基于PHP / jQuery / jQueryUI / jqGrid / mySQL构建。

2 个答案:

答案 0 :(得分:3)

在PHP,HTTP,HTML,DOM甚至浏览器DOM扩展中都没有任何内容可以知道您是否在终端服务会话下运行。

唯一的方法是使用ActiveX控件或.NET小程序直接查询Win32。在C#/ .NET中,您可以使用System.Windows.Forms.SystemInformation.TerminalServerSession,然后将该信息返回给服务器,但只能在页面加载后执行此操作。

这可能是IE9改进的硬件加速渲染功能的问题,因为终端服务使用虚拟rdpdd显示驱动程序。尝试在终端服务器上的IE中禁用此选项。

答案 1 :(得分:0)

远程桌面用户使用浏览器作为主机(服务器或Citrix)应用程序内的设置。 服务器管理员可以定义类似的选项 浏览器设置(IE的增强安全设置) 病毒扫描程序集成

以及可用的浏览器(IE 7-8-9-10)。 那些浏览器在呈现

时表现不同

IE-XXX兼容模式可由您的应用程序控制 http://msdn.microsoft.com/library/cc817574.aspx

每页:

<meta http-equiv="X-UA-Compatible" content="IE=8"/> 

即使html中没有“!DOCTYPE”,页面也将始终以“IE8标准模式”呈现

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"/> 

即使html中没有“!DOCTYPE”,页面也将始终以“IE9标准模式”呈现

<meta http-equiv="X-UA-Compatible" content="IE=9"/> 

即使html中没有“!DOCTYPE”,页面也将始终以“IE9标准模式”呈现

<meta http-equiv="X-UA-Compatible" content="IE=edge"/> 

在此配置下,将使用IE渲染引擎的最高可用版本。它不关心是否使用“!DOCTYPE”。此功能与“IE = 7”和“IE = 8”相当。这用于与最高的IE版本兼容。

所以我认为您不需要关心RDP或Citrix主机,而是支持在正确的模式下使用IE。