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