如何以编程方式获得ie10的REAL用户代理

我需要以编程方式获取我的浏览器的User-Agent:Windows 7上的IE10。

这应该是一件容易的工作。 我尝试了javascript中的navigator.userAgent和Silverlight中的HtmlPage.BrowserInformation.UserAgent,并且它们都返回:

Mozilla / 5.0(兼容; MSIE 10.0; Windows NT 6.1; WOW64; Trident / 6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4。 0E; InfoPath.3; .NET4.0C)

,看起来不错。 然而,正如我注意到的Fiddler,真正的UA IE10在浏览网站时发送的是:

Mozilla / 5.0(兼容; MSIE 10.0; Windows NT 6.1; WOW64; Trident / 6.0)

,这是一个较短的版本。 我怎样才能得到这个IE10使用的更短的字符串?

(我安装了Firefox 19并且Firefox没有这个问题,两种方法的用户代理是相同的。)

谢谢,


其他应用程序有机会修改用户代理以添加您在上面看到的信息,如.NET CLR,Media Center等的版本... http://msdn.microsoft.com/zh-cn/library/ms537503 (v = vs.85)的.aspx

Scott Hanselman不久前发表了一篇文章,其中一些信息来自Windows注册局http://www.hanselman.com/blog/TheNETFrameworkAndTheBrowsersUserAgentString.aspx

当你到达浏览器时,用户代理将被更新以包含任何必要的信息,因此不幸的是你无法获得原始的干净版本。

通常情况下,您希望通过浏览器嗅探来使用功能检测,但正如您所提到的那样,它有适当的用例。 我知道这并不能回答你所期望的问题,但希望它可以解释发生了什么。


从我所能告诉的是,无法执行“功能检测”方法来在客户端上获取已安装的.NET Framework版本。 userAgent字符串是唯一的方式,并且被破坏。

链接地址: http://www.djcxy.com/p/51893.html

上一篇: How to programmatically get ie10's REAL user agent

下一篇: agent strings to different sites