Want to work with us? We're on the lookout for digital experts.

We're hiring

Detecting Other Browsers Using ASP.NET -

Web Bureau

01 February 2011 by Web Bureau

Its a bit strange but ASP.Net request.browser does not pick up other newer browsers by default. I suppose this is standard enough if you think about it.

This post refers to the contents of this site:

ASP.NET comes with a browser capabilities database (BCD), which describes the capabilities of known browsers. This database is usefull for control developers that want to take advantage on different browser capabilities. Of course, more recent browsers are not listed on that database, simply because they did not exist at the time ASP.NET 2.0 was released (versions 3.0, 3.5 and 3.5 SP1 don't add anything new), and, specifically, Chrome is not on that list.

If you want to add new browsers to the BCD, you have two options:

  1. The global database, located in the %Windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers directory
  2. A local database on your ASP.NET application, in the App_Browsers directory

In any case, you start by adding a new file, say, Chrome.browser, to the appropriate directory. Looking at all browsers registed in the BCD, we choose Safari as the most similar one, and have our definition inherit from it:


    <browser id="Chrome" parentID="Safari1Plus">

        <identification>             <userAgent match="Chrome/(?'version'(?'major'\d+)\.(?'minor'\d+\.\d+).\d+)" />



            <capability name="browser" value="Chrome" />

            <capability name="majorversion" value="${major}" />

            <capability name="minorversion" value="${minor}" />

            <capability name="version" value="${version}" />




Of course, you can override the capabilities defined for Safari, if you want, but I think they should be OK. Also, you can add entries for all the Chrome versions.

If you try to access your web application running Chrome and look at the HttpContext.Request.Browser.BrowserName, you may be surprised to see that the name is... not Chrome! It so happens that you must increase the number of characters ASP.NET uses for the user agent header, and you do this in Web.config:


    <browserCaps userAgentCacheKeyLength="128" />


And that's it! If you try now, you'll see that the BrowserName property is now "Chrome" and that the listed capabilities match the configured ones.

Grow your businessStart a project with us today.

This site uses essential cookies for parts of the site to operate and have already been set. Find out more about how we use cookies and how you may delete them. You may delete cookies, but parts of the site will not work.