【发布时间】:2020-11-06 22:55:00
【问题描述】:
我正在尝试确定浏览器是否是服务器端 ASP.NET Core 中的 Internet Explorer。
在我的 cshtml 中以前的 ASP.NET 4 版本中:
@if (Request.Browser.Browser == "IE")
{
//show some content
}
但在 ASP.NET 5/ASP.NET Core 中,Context.Request 的智能感知没有Browser 的选项
我可以得到 UserAgent 但这似乎相当复杂,因为 IE 有许多类型的字符串
Context.Request.Headers["User-Agent"]
对于 Internet Explorer 11.0 我得到了
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
这使得很难从中确定任何过去、当前或未来的 IE 版本。
【问题讨论】:
-
IE 团队更改 IE11 的用户代理字符串的全部原因是试图阻止人们嗅探 IE。至于未来的版本,要么他们尝试结束浏览器嗅探而成功(即你手头的任务会失败),要么他们必须做出进一步的改变来击败你当前的嗅探技术,如果他们成为受欢迎。
标签: asp.net-core asp.net-core-mvc