在asp.net中,使用这个结构,我怎么能检测到新的Microsoft" Edge"浏览器?
Dim wrkBrowser As String = ""
Dim wrkBrowserType As String = HttpContext.Current.Request.Browser.Type
If InStr(wrkBrowserType, "Chrome") <> 0 Then
wrkBrowser = "Chrome"
End If
If InStr(wrkBrowserType, "MSIE") <> 0 Then
wrkBrowser = "IE"
End If
If InStr(wrkBrowserType, "FireFox") <> 0 Then
wrkBrowser = "FF"
End If
答案 0 :(得分:9)
我知道答案有点晚了,但我搜遍了整个地方,从未找到过这个,不得不自己写。以下代码将允许Request.Browser变量返回Edge和Edge Version而不是Chrome。
将以下代码段添加到.browser文件(例如app_Browsers文件夹中的platform.browser)将导致它返回Edge和版本。
<browser id="Edge" parentID="Chrome">
<identification>
<userAgent match="Edge/(?'version'(?'major'\d+)(?'minor'\.\d+))" />
</identification>
<capabilities>
<capability name="browser" value="Edge" />
<capability name="version" value="${version}" />
<capability name="majorversion" value="${major}" />
<capability name="minorversion" value="${minor}" />
</capabilities>
</browser>
答案 1 :(得分:3)
正如Joey所说,用户代理字符串是您想要查看的内容。 Request.Browser的属性不包含任何特定于Edge的内容,但您可以使用HttpContext.Current.Request.UserAgent获取用户代理字符串,并使用.IndexOf(“Edge”)进行搜索。
答案 2 :(得分:1)
我不擅长任何.NET,但是阅读你的代码,在我看来,
返回的值HttpContext.Current.Request.Browser.Type
是用户代理。
您可以在this页面找到有关Edge的用户代理的信息。
边缘的用户代理:
Mozilla / 5.0(Windows NT 10.0; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 39.0.2171.71 Safari / 537.36 Edge / 12.0
请注意,该值可能会根据移动设备,xbox等进行更改
所以在你的情况下,尝试检查“边缘”
答案 3 :(得分:0)
您需要像这样检查UserAgent:
if (Regex.IsMatch(HttpContext.Request.UserAgent, @"Edge\/\d+"))
{
wrkBrowser = "Edge"
}
如果您要检查多个浏览器,请注意您检查的顺序,因为许多浏览器都喜欢在其UserAgent字符串中提及其他浏览器。
这是Edge的当前用户代理字符串:
Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML, 像Gecko)Chrome / 51.0.2704.79 Safari / 537.36 Edge / 14.14393
答案 4 :(得分:0)
HttpContext.Current.Request.UserAgent.DefaultIfEmpty()。包含( “边缘”)
DefaultIfEmpty()是我写的一个扩展方法,如果字符串为null,则确保空字符串。
答案 5 :(得分:0)
为了浏览器兼容性,您可以使用此代码。此方法返回浏览器名称和版本:
private string GetBrowserNameWithVersion
{
var userAgent = Request.UserAgent;
var browserWithVersion = "";
if (userAgent.IndexOf("Edge") > -1)
{
//Edge
browserWithVersion = "Edge Browser Version : " + userAgent.Split(new string[] { "Edge/" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("Chrome") > -1)
{
//Chrome
browserWithVersion = "Chrome Browser Version : " + userAgent.Split(new string[] { "Chrome/" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("Safari") > -1)
{
//Safari
browserWithVersion = "Safari Browser Version : " + userAgent.Split(new string[] { "Safari/" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("Firefox") > -1)
{
//Firefox
browserWithVersion = "Firefox Browser Version : " + userAgent.Split(new string[] { "Firefox/" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("rv") > -1)
{
//IE11
browserWithVersion = "Internet Explorer Browser Version : " + userAgent.Split(new string[] { "rv:" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("MSIE") > -1)
{
//IE6-10
browserWithVersion = "Internet Explorer Browser Version : " + userAgent.Split(new string[] { "MSIE" }, StringSplitOptions.None)[1].Split('.')[0];
}
else if (userAgent.IndexOf("Other") > -1)
{
//Other
browserWithVersion = "Other Browser Version : " + userAgent.Split(new string[] { "Other" }, StringSplitOptions.None)[1].Split('.')[0];
}
return browserWithVersion;
}
答案 6 :(得分:0)
在 Windows NT 10.0 Microsoft Edge 上,Request.UserAgent 如下所示,而不是 Edge
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66