PHP中是否有办法了解某人是否从Windows终端服务/ Citrix / RDP远程桌面环境中连接到我的网站?
当有人通过远程桌面连接使用IE9连接到某个人时,我的网络应用程序遇到了一些严重的性能问题。我知道我应该找到这些问题的原因并相信我。然而我发现由于某种原因切换到IE8兼容模式可以解决问题。所以暂时我想检测是否有人通过远程桌面连接使用IE9连接到我的网站,这样我就可以强制使用IE8兼容模式了。
对于我的Web应用程序在远程桌面IE9中速度如此之慢的任何想法也是受欢迎的。我的Web应用程序基于PHP / jQuery / jQueryUI / jqGrid / mySQL构建。
答案 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。