【问题标题】:How to get Requested browser name and version in asp.net core 2.0如何在 asp.net core 2.0 中获取请求的浏览器名称和版本
【发布时间】:2018-10-18 12:36:07
【问题描述】:

如何在 asp.net core 2.0 中获取请求的浏览器名称和版本

How to get user Browser name ( user-agent ) in Asp.net Core? 返回客户端 PC 上安装的所有浏览器。 但我需要当前请求的浏览器名称。

【问题讨论】:

  • 不,标头返回所有浏览器。它不能 - 标头由浏览器本身发送。 这是每个操作系统中的每个浏览器都用来向站点标识自己的名称。该字符串标识与现有浏览器的兼容性、浏览器渲染引擎的版本和操作系统。
  • 顺便说一句,你为什么要问?如果您想控制页面的呈现方式,浏览器检测不是一个好主意。浏览器会撒谎。所有主要浏览器都是常青树,这意味着它们每个月都会更新自己。您无法将浏览器版本映射到特性或功能。这就是过去 5 年以上所有网站都使用特征检测的原因
  • Headers["User-Agent"] 返回 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36." 然后当前请求的是哪一个?

标签: c# asp.net-core


【解决方案1】:

PM中使用install-package Wangkanai.Detection -preinstall-package Wangkanai.Detection.Browser -pre来安装包。 然后...在Startup.cs中编写如下代码:

services.AddDetection();
services.AddDetectionCore().AddBrowser();

在你的控制器中:

private readonly IDetection _detection;
        public HomeController(IDetection detection)
        {
            _detection = detection;
        }
public IActionResult Index()
        {
            string browser_info = _detection.Browser.Type.ToString() + _detection.Browser.Version;
            ViewData["a"] = browser_info;
            return View(_detection);
        }

【讨论】:

    【解决方案2】:

    试试这个Request.Headers["User-Agent"].ToString()

    【讨论】:

    • 返回所有安装的浏览器。 “Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36”。但我需要当前使用的客户端浏览器名称
    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 2011-07-07
    • 2014-04-11
    • 1970-01-01
    • 2012-02-03
    • 2015-04-24
    • 2015-04-04
    • 2011-10-06
    相关资源
    最近更新 更多