HttpBrowserCapabilities browse = Request.Browser; 似乎只能为所有其他浏览器带回IE或Netscape。有没有人得到HttpBrowserCapabilities在asp.net中工作
我更新了具有asp.net c#的开发人员电脑上的C:\ WINDOWS \ system32 \ inetsrv browscap.ini文件。
我的要求是在服务器端代码中捕获客户端浏览器。
谢谢。
HttpBrowserCapabilities browse = Request.Browser; 似乎只能为所有其他浏览器带回IE或Netscape。有没有人得到HttpBrowserCapabilities在asp.net中工作
我更新了具有asp.net c#的开发人员电脑上的C:\ WINDOWS \ system32 \ inetsrv browscap.ini文件。
我的要求是在服务器端代码中捕获客户端浏览器。
谢谢。
http://owenbrady.net/browsercaps/这是一个xml文件,您将其添加到web.config中,该文件将详细信息返回给browsercapabilities结构。这应该做你想要的。
编辑:我只在IIS7和Asp.Net 3.5上测试过。
看看App_Browsers文件夹,可以添加一个.browser文件来扩展对ASP.net中Request.Browser对象的检测。
例如:要检测到BlackBerry,您需要以下规则,例如: blackberry.browser添加到该文件夹App_Browsers文件:
<browsers>
<browser id="BlackBerry" parentID="Default">
<identification>
<userAgent match="BlackBerry(?'model'\d+)/(?'version'((?'major'\d+).(?'minor'\d+).(?'other'\d+)))" />
</identification>
<capabilities>
<capability name="browser" value="BlackBerry" />
<capability name="isMobileDevice" value="true" />
<capability name="javascript" value="true" />
<capability name="ecmascriptversion" value="1.3" />
<capability name="version" value="${version}" />
<capability name="majorVersion" value="${major}" />
<capability name="minorVersion" value="${minor}" />
<capability name="supportsCss" value="true" />
<capability name="css1" value="true" />
<capability name="css2" value="true" />
<capability name="frames" value="false" />
<capability name="cookies" value="true" />
<capability name="mobileDeviceManufacturer" value="RIM" />
<capability name="isColor" value="true" />
<capability name="supportsBold" value="true" />
<capability name="supportsFontName" value="true" />
<capability name="supportsImageSubmit" value="true" />
<capability name="supportsItalic" value="true" />
<capability name="preferredImageMime" value="image/jpeg" />
</capabilities>
</browser>
</browsers>
现在你可以永远保存添加你自己的,但有来自微软的一个项目,有成千上万在他们的文件的设备:MDBF,但他们最近关闭该项目分解(但最后的版本仍然可以访问)。 因此,替代方案是包含51degrees.codeplex.com这不像MDBF那样容易,但应该完成工作。
使用.Net 3.5,我已经将HttpBrowserCapabilities与web.config的browsercaps部分一起使用了。这就是我所拥有的,在同一台机器上的IE 8,Firefox,Chrome和Safari中验证。
System.Web.HttpBrowserCapabilities browser = Request.Browser;
BrowserNm.Text = browser.Browser;
BrowserVer.Text = browser.Version;
Platform.Text = browser.Platform;
我对浏览器检测的要求很相似,但我们根本不想使用browsercaps。如果你打算使用browsercaps,那么你也可以编写正则表达式来识别浏览器,这是我们第一个选择,我讨厌它。
我还在研究的三个属性是IsMobileDevice,MobileDeviceManufacturer和MobileDeviceModel。如果我知道这些工作,我是金。
先生,谢谢你的帮助。 我的要求是为此工作.net 1.1 有些人似乎说我应该更新machine.config其他web.config。 如果我更新web.config系统抱怨。 如果我更新machine.config,系统仍然抱怨。 所有的信息似乎都不清楚。 machine.config已经有Firefox的条目,那么为什么系统会说第一个默认选项'unknown':( – Hunt 2010-06-21 14:33:33
是App_Browsers只是.net 2? – Hunt 2010-06-21 14:41:28
啊。对不起,我真的不能回答因为我*仅*在ASP.Net 3.5的IIS7上测试了它。配置方法允许您只在一个网站上提供它,而不是整个机器。 http://msdn.microsoft.com/en-us/library/sk9az15a.aspx这个页面似乎暗示它在需求下工作,看起来web.config和machine.config都可以工作,但它并不真的说是否有任何限制,因为1.1 ...我会继续寻找你,虽然 – Buildstarted 2010-06-21 15:17:08