如何在ASP.NET Core 2.0中获取请求浏览器名称和版本

3

不,头部信息并不能返回所有浏览器。它无法这样做 - 头部信息是由浏览器自身发送的。这就是每个浏览器在每个操作系统中向网站标识自己的名称。该字符串标识与现有浏览器的兼容性、浏览器呈现引擎的版本和操作系统有关。 - Panagiotis Kanavos
1
顺便问一下,您为什么要问呢?如果您想控制页面的渲染效果,浏览器检测并不是一个好主意。浏览器有可能会撒谎。所有主要浏览器都是常青树,这意味着它们每个月都会更新自己。您无法将浏览器版本映射到功能或能力上。这就是为什么所有网站在过去5年中都使用特性检测的原因。 - Panagiotis Kanavos
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."那么当前是哪一个正在请求? - Md. Al-Amin
2个回答

3

使用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);
        }

-1

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


1
它返回所有已安装的浏览器。 但我需要当前使用的客户端浏览器名称。 - Md. Al-Amin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接