2017-10-06 91 views
0

我创建了一个代码,用于检查浏览器是否只能在Google Chrome上访问并限制Mozilla Firefox。例如,我使用的只是使用谷歌浏览器的Android手机,如果iPhone或iPad Google Chrome浏览器有权访问该网站。但是,当检查浏览器是Chrome还是Mozilla时,它会被视为Safari。使用C#,工具。所以我调查它是否有一个独特的财产,很好用,但可悲的是没有。有没有一个好的插件或库或框架来检测iPhone或Android浏览器。谢谢。为什么iPhone将Google Chrome视为Safari还将Mozilla Firefox视为Safari浏览器?

这是用于谷歌浏览器。

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 

这是用于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 

回答

0

这可能是由于iOS不允许其他浏览器引擎比Safari。

不幸的是,这迫使Chrome应用程序使用Safari的Web浏览器组件和用户代理。

更多about it here

+0

谢谢你,朋友,现在我放心了。最后。 – Chuck

+0

是否有另一种方法来检查浏览器组件和用户代理? – Chuck

+0

不幸的是,没有真正确定的方式来做到这一点,但在[这个线程]中接受的答案(https://stackoverflow.com/questions/7702325/the-best-way-to-detect-browser-in-js)从不同的角度解决问题可能有所帮助。 – einord

相关问题