2

I create a code that checks if the browser is accessible only on Google Chrome and limit Mozilla Firefox. For example, I use an Android phone I want to give access only using Google Chrome and if an iPhone or iPad Google Chrome have privileges to access the website. But when check if the browser is Chrome or Mozilla it treated as Safari. Using the C#, tools. So I investigate it if there's a unique property that is good to use but sadly none. Is there a good plugin or libraries or framework to detect an iphone or android browser. Thank you.

This is for Google Chrome.

var userAgent = filterContext.HttpContext.Request.UserAgent?.ToLowerInvariant() ?? "";
"mozilla/5.0 (iphone; cpu iphone os 9_1 like mac os x) applewebkit/601.1.46 (khtml, like gecko) version/9.0 mobile/13b143 safari/601.1"

var userBrowser = filterContext.HttpContext.Request.Browser.Browser?.ToLowerInvariant() ?? "";
"safari"

var userBrowserTypeype = filterContext.HttpContext.Request.Browser.Type;
"Safari9"

var userBrowserVersion = filterContext.HttpContext.Request.Browser.Version;
"9.0"

var userBrowserMajorVersion = filterContext.HttpContext.Request.Browser.MajorVersion;
"9"

var userBrowserMinorVersion = filterContext.HttpContext.Request.Browser.MinorVersion;
0

var userBrowserPlatform = filterContext.HttpContext.Request.Browser.Platform;
"Unknown"

var userBrowserBeta = filterContext.HttpContext.Request.Browser.Beta;
false

var userBrowserCrawler = filterContext.HttpContext.Request.Browser.Crawler;
false

var userAol = filterContext.HttpContext.Request.Browser.AOL;
false

var userBrowserWin16 = filterContext.HttpContext.Request.Browser.Win16;
false

var userBrowserWin32 = filterContext.HttpContext.Request.Browser.Win32;
false

var userBrowserFrames = filterContext.HttpContext.Request.Browser.Frames;
true

var usBrowserTables = filterContext.HttpContext.Request.Browser.Tables;
true 

var userBrowserCookies = filterContext.HttpContext.Request.Browser.Cookies;
true

var userBrowserVbScript = filterContext.HttpContext.Request.Browser.VBScript;
false

This is for Mozilla Firefox.

var userAgent = filterContext.HttpContext.Request.UserAgent?.ToLowerInvariant() ?? "";
"mozilla/5.0 (iphone; cpu iphone os 10_2_1 like mac os x) applewebkit/602.4.6 (khtml, like gecko) version/10.0 mobile/14d27 safari/602.1"

var userBrowser = filterContext.HttpContext.Request.Browser.Browser?.ToLowerInvariant() ?? "";
"safari"

var userBrowserTypeype = filterContext.HttpContext.Request.Browser.Type;
"Safari10"

var userBrowserVersion = filterContext.HttpContext.Request.Browser.Version;
"10.0"

var userBrowserMajorVersion = filterContext.HttpContext.Request.Browser.MajorVersion;
"10"

var userBrowserMinorVersion = filterContext.HttpContext.Request.Browser.MinorVersion;
0

var userBrowserPlatform = filterContext.HttpContext.Request.Browser.Platform;
"Unknown"

var userBrowserBeta = filterContext.HttpContext.Request.Browser.Beta;
false

var userBrowserCrawler = filterContext.HttpContext.Request.Browser.Crawler;
false

var userAol = filterContext.HttpContext.Request.Browser.AOL;
false

var userBrowserWin16 = filterContext.HttpContext.Request.Browser.Win16;
false

var userBrowserWin32 = filterContext.HttpContext.Request.Browser.Win32;
false

var userBrowserFrames = filterContext.HttpContext.Request.Browser.Frames;
true

var usBrowserTables = filterContext.HttpContext.Request.Browser.Tables;
true 

var userBrowserCookies = filterContext.HttpContext.Request.Browser.Cookies;
true

var userBrowserVbScript = filterContext.HttpContext.Request.Browser.VBScript;
false
Chuck
  • 29
  • 6

1 Answers1

1

That is probably due to that iOS does not allow other browser engines than Safari.

Sadly, this forces the Chrome app to use Safari's web browser component and user agent.

Read more about it here

einord
  • 2,278
  • 2
  • 20
  • 26
  • is there another way to check the browser component and user agent? – Chuck Oct 06 '17 at 06:41
  • Sadly, there's no real definite way to do it, but the accepted answer in [this thread](https://stackoverflow.com/questions/7702325/the-best-way-to-detect-browser-in-js) tackles the problem from a different angle that might help. – einord Oct 06 '17 at 06:45