我需要以编程方式获取浏览器的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没有这个问题,两种方法的用户代理是相同的。)
谢谢,
答案 0 :(得分:0)
其他应用程序有机会修改用户代理以添加您在上面看到的信息,如.NET CLR,Media Center等版本...... http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
Scott Hanselman不久前有一篇帖子,其中一些信息来自Windows注册表http://www.hanselman.com/blog/TheNETFrameworkAndTheBrowsersUserAgentString.aspx
当您进入浏览器时,用户代理将更新为包含所需的任何信息,因此您将无法获得原始的干净版本。
通常,您希望使用功能检测而不是浏览器嗅探,但正如您所提到的那样,它有适当的用例。我知道这并没有像你所希望的那样回答这个问题,但希望它可以解释一下发生了什么。
答案 1 :(得分:-1)
据我所知,无法使用“功能检测”方法在客户端上获取已安装的.NET Framework版本。 userAgent字符串是唯一的方法,也就是破解。