gpt4 book ai didi

c# - HttpBrowserCapabilities缺少一些信息?

转载 作者:太空宇宙 更新时间:2023-11-03 17:34:35 26 4
gpt4 key购买 nike

我想使用Request.Browser属性(HttpBrowserCapabilities类)来确定客户端系统的某些属性。

但是,我似乎遇到了此类的一些限制。我找不到一些应该相对容易从UserAgent字符串进行解析的属性,例如OS版本(Platform对于大多数Windows版本只会返回WinNT,而对于Vista,XP等则不会返回),或者是否是否为x64(仅Win16Win32属性)。

我本来希望在HttpBrowserCapabilities类中看到这些属性,因为那里有大多数其他用户代理信息。我想念什么吗?我可以在其他地方找到此信息吗?还是我应该自己从UserAgent字符串中解析它?

最佳答案

您可以通过在machine.config / web.config文件中添加/扩展browserCaps配置部分来扩展HttpBrowserCapabilities。例如,要更准确地检测操作系统版本,请在配置文件中添加以下内容:

<system.web>
<browserCaps>
<use var="HTTP_USER_AGENT" />
<filter>
<case match="Windows NT 6.1">
platform=Windows7
</case>
</filter>
</browserCaps>
</system.web>


如果使用在Windows 7上运行Mozilla的网站访问该网站(UserAgent =“ Mozilla / 5.0(Windows NT 6.1; WOW64; rv:2.0.1)Gecko / 20100101 Firefox / 4.0.1”),您将看到Request.Browser .Platform将显示​​“ Windows7”。有关更多信息,请参见此处: http://msdn.microsoft.com/en-us/library/sk9az15a%28v=vs.71%29.aspx

在browserCaps部分中添加一个正则表达式以匹配WOW64字符串,以检测客户端平台是否为64位(我不确定WOW64等效于在64位上运行的非Windows平台)。

...当然,通过在元素中使用正则表达式,除了实际解析UserAgent字符串外,您什么都没有做。但是,您可以轻松地在网络上找到预定义的browserCaps(例如 http://owenbrady.net/browsercaps/CodeProject.xml)。

请记住,尽管此功能非常强大,但仍不是100%准确。例如,Windows 7和Windows Server 2008 R2都将Windows NT 6.1作为平台返回。

关于c# - HttpBrowserCapabilities缺少一些信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5979485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com