The best browser detection solution in ASP.NET 4.0

I googled this topic and I came across with three different ways to configure browser capabilities: browscap.ini, browserCaps element in web.config and .browser files in App_Browsers. I thought .browser files is the latest way, but I don’t seem to find up-to-date files. But I found quite fresh browscap.ini from http://browsers.garykeith.com/downloads.asp.

My first priority is to exclude common crawlers from the visitor stats. The second priority is to detect browser and os with correct versions (e.g. Opera 11 / Win7).

Are there any libraries I could use? Is browscap.ini still a valid way and is it possible to use it without access to system files? Where can I find up-to-date .browser files?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

more info : http://msdn.microsoft.com/en-us/library/3yekbd5b.aspx
Have you checked this :

    System.Web.HttpBrowserCapabilities browser = Request.Browser;
    string s = "Browser Capabilitiesn"
        + "Type = "                    + browser.Type + "n"
        + "Name = "                    + browser.Browser + "n"
        + "Version = "                 + browser.Version + "n"
        + "Major Version = "           + browser.MajorVersion + "n"
        + "Minor Version = "           + browser.MinorVersion + "n"
        + "Platform = "                + browser.Platform + "n"
        + "Is Beta = "                 + browser.Beta + "n"
        + "Is Crawler = "              + browser.Crawler + "n"
        + "Is AOL = "                  + browser.AOL + "n"
        + "Is Win16 = "                + browser.Win16 + "n"
        + "Is Win32 = "                + browser.Win32 + "n"
        + "Supports Frames = "         + browser.Frames + "n"
        + "Supports Tables = "         + browser.Tables + "n"
        + "Supports Cookies = "        + browser.Cookies + "n"
        + "Supports VBScript = "       + browser.VBScript + "n"
        + "Supports JavaScript = "     + 
            browser.EcmaScriptVersion.ToString() + "n"
        + "Supports Java Applets = "   + browser.JavaApplets + "n"
        + "Supports ActiveX Controls = " + browser.ActiveXControls 
              + "n"
        + "Supports JavaScript Version = " +
            browser["JavaScriptVersion"] + "n";

    TextBox1.Text = s;

Method 2

I found a user agent parser from http://user-agent-string.info/ and it seems to be good enough for my purposes.

Method 3

Just so no one else goes down that dark path, be aware that even the jQuery team recommend that you DO NOT use jQuery.browser object:

“The $.browser property is deprecated in jQuery 1.3”

Method 4

The best answer is feature detection, not browser detection! This is particularly true in the day where Firefox & Chrome are putting out releases ever few months and mobile browser use is growing. Use Modernizr (http://Modernizr.com) or an equivalent library to detect the features you are interested in.

Method 5

So far I’ve used http://api.jquery.com/jQuery.browser/ for client side detection.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x