我输入以下代码检测浏览器类型(IE,FF,Chrome,Edge)从用户使用,使用C# ASPNET。
检测到的浏览器类型工作正常,但我已验证,当代码从Microsoft Edge
浏览器获取时,输出为
Browser Capabilities
Type = Chrome94
Name = Chrome
Version = 94.0
Major Version = 94
Minor Version = 0
Platform = WinNT
Is Beta = False
Is Crawler = False
Is AOL = False
Is Win16 = False
Is Win32 = True
Supports Frames = True
Supports Tables = True
Supports Cookies = True
Supports VBScript = False
Supports JavaScript = 3.0
Supports Java Applets = True
Supports ActiveX Controls = False
Supports JavaScript Version = 1.7
字符串
就像使用的浏览器是Google Chrome.
一样
有什么问题吗??
下面是我的代码
System.Web.HttpBrowserCapabilities browser = Request.Browser;
string s = "Browser Capabilities\n"
+ "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";
型
1条答案
按热度按时间s4chpxco1#
这就是我过去的工作:
准确的浏览器检测是使用UserAgent属性,如
字符串
如果您的用户代理包含子字符串“Edg”,如在类似情况下:
型
然后你的浏览器将是Edge。
如果您的用户代理包含“Chrome”,如本例所示:
型
然后你的浏览器将是Chrome。
对于Firefox来说,就像这样:
型
我过去尝试过的一个属性是这样的:
型
这似乎是一个显而易见的选择,在许多情况下会给予你正确的浏览器,但在Edge浏览器中,它给了我Chrome。所以使用UserAgent字符串是获取ASP.NET HTTP请求的浏览器的最佳方法。