首页 > 编程语言 >ASP.NET Core 快速轻量级的浏览器检测和设备检测库

ASP.NET Core 快速轻量级的浏览器检测和设备检测库

时间:2025-01-23 11:10:25浏览次数:1  
标签:Core 浏览器 IBrowserDetector browserDetector 检测 NET Browser 轻量级 BrowserDetector

在 .NET Framework 4.7 中那样,通过 HttpContext.RequestBrowser 属性轻松获取发起 HTTP 请求的浏览器信息,ASP.NET Core 并未直接提供这一功能,现在有了 BrowserDetector 这个强大的 NuGet 包,你可以在 ASP.NET Core 应用中轻松实现浏览器、设备类型以及操作系统的检测。
BrowserDetector 支持以下 .NET 框架版本: .NET 6/7/8

如何使用 BrowserDetector

安装 NuGet 包

首先需要安装 BrowserDetector NuGet 包

Install-Package Shyjus.BrowserDetector

启用浏览器检测服务

在你的启动代码中,调用 IServiceCollection 上的 AddBrowserDetection 方法来启用浏览器检测服务:

services.AddBrowserDetection();

注入并使用 IBrowserDetector

接下来,你可以在控制器类、视图文件或中间件中注入 IBrowserDetector,并访问其 Browser 属性来获取浏览器相关信息。

在控制器中的使用示例

public class HomeController : Controller
{
    private readonly IBrowserDetector browserDetector;

    public HomeController(IBrowserDetector browserDetector)
    {
        this.browserDetector = browserDetector;
    }

    public IActionResult Index()
    {
        var browser = this.browserDetector.Browser;
        // 按需使用 browser 对象

        return View();
    }
}

在视图中的使用示例

@inject Shyjus.BrowserDetection.IBrowserDetector browserDetector

<h2>@browserDetector.Browser.Name</h2>
<h3>@browserDetector.Browser.Version</h3>
<h3>@browserDetector.Browser.OS</h3>
<h3>@browserDetector.Browser.DeviceType</h3>

在自定义中间件中的使用

你还可以将 IBrowserDetector 注入到中间件的 InvokeAsync 方法中

public class MyCustomMiddleware
{
    private RequestDelegate next;

    public MyCustomMiddleware(RequestDelegate next)
    {
        this.next = next;
    }

    public async Task InvokeAsync(HttpContext httpContext, IBrowserDetector browserDetector)
    {
        var browser = browserDetector.Browser;

        if (browser.Type == BrowserType.Edge)
        {
            await httpContext.Response.WriteAsync("Have you tried the new chromuim based edge ?");
        }
        else
        {
            await this.next.Invoke(httpContext);
        }
    }
}

解读 IBrowserDetector.Name 返回的名称值

IBrowserDetector.Name 返回的名称值具有特定含义,以下是常见名称的解释:

  • Firefox:Firefox 浏览器。
  • EdgeChromium:基于 Chromium 的新版 Microsoft Edge 浏览器。
  • Edge:旧版 Edge 浏览器。
  • Safari:Safari 浏览器。
  • Chrome:Chrome 浏览器。

性能影响

你可能会关心添加 BrowserDetector 包对应用性能的影响。经过基准测试,在 Safari 和 Chrome 桌面用户代理上的测试结果显示,检测结果的返回时间大约在 1 微秒 左右。堆内存分配会根据输入的不同而有所变化。以下是具体的测试数据:

方法 平均值
Chrome_Windows 1.057 us
Safari_Windows 1.093 us

1 微秒仅相当于一百万分之一秒,这意味着 BrowserDetector 对性能的影响微乎其微,你完全可以放心使用它来为你的 ASP.NET Core Web API 应用增添浏览器检测功能。

仓库地址:https://github.com/kshyju/BrowserDetector

标签:Core,浏览器,IBrowserDetector,browserDetector,检测,NET,Browser,轻量级,BrowserDetector
From: https://www.cnblogs.com/netcore5/p/18687375

相关文章

  • DL00461-深度学习算法变压器红外测温过热缺陷检测
    完整gou买链接:https://item.taobao.com/item.htm?ft=t&id=881079880820本系统以Dji指定型号无人机拍摄的红外图像作为原始输入,基于YOLOv9算法训练红外套管目标检测与分割模型。结合Dji测温SDK,系统实时获取目标区域的最大温度值,从而实现红外套管与接线端区域的最大温度测定。该......
  • 交叉注意力机制在YOLO目标检测优化中的应用:结合余弦退火学习率调度的实战解析
    在目标检测领域,YOLO(YouOnlyLookOnce)因其高效性和准确性而被广泛采用。然而,随着任务复杂性的提升,如何优化YOLO算法以实现更高的性能成为研究热点。本文探讨了交叉注意力机制与余弦退火学习率调度在YOLO优化中的结合,提供了一种高效的实战方案。一、什么是交叉注意力机制?交......
  • 目标检测高频评价指标的计算过程
    在yolo目标检测的评价指标中有如下字段:指标的计算过程如图:计算过程从前到后,涉及到多个指标的计算,分别是:模型输出值IOU计算预测结果判断混淆矩阵计算PR以及PR曲线计算AP计算mAP计算ROC计算下面详细介绍各个步骤的涉及的概念,计算方法。模型输出在目标检测中,一张图......
  • 折腾笔记[10]-使用rust进行ORB角点检测
    摘要打包ORB算法到bye_orb_rs库,使用rust进行ORB角点检测.PackagetheORBalgorithmintothebye_orb_rslibrary,anduseRustforORBcornerdetection.关键词rust;ORB;FAST;slam;关键信息项目地址:[https://github.com/ByeIO/slambook2.rs][package]name="exp65-......
  • 目标检测
    在yolo目标检测的评价指标中有如下字段:指标的计算过程如图:计算过程从前到后,涉及到多个指标的计算,分别是:模型输出值IOU计算预测结果判断混淆矩阵计算PR以及PR曲线计算AP计算mAP计算ROC计算下面详细介绍各个步骤的涉及的概念,计算方法。模型输出在目标检测中,一张图......
  • .net core 的 swagger 分组简单使用
    1.Programm中添加builder.Services.AddSwaggerGen(c=>{c.SwaggerDoc("v1",newOpenApiInfo{Title="BarcodeAPI",Version="v1"});c.SwaggerDoc("WMS",newOpenApiInfo{Title="W......
  • 使用 husky pre-commit 脚本自动检测提交代码里的关键词
    需求场景:1.若本地环境某个接口实在无法返回类真实的数据(包括一直是null或者一直是0),前端得做mock数据,提交的时候得注释掉mock相关代码。2. 我在上一家公司,由于要调试tiptap,大家都写了很多console.log,组长要求大家提pr的时候注释掉console.log以免影响他人调试......
  • #攻防演练#应急响应#对于挖矿的检测以及防御方案
    免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。目录01前言02基于流量的检测03基于主机层的检测04排查清......
  • GRFB UNet——基于多尺度注意网络盲道检测算法实现与模型C++部署
    GRFBUNet——基于多尺度注意网络盲道检测算法实现与模型C++部署1.概述盲道是视障人士安全出行的重要辅助设施。识别盲道的形状和位置,对于增强视障人士的自主移动能力至关重要,而视觉分割技术正是应对这一挑战的有效工具。为了显著提升盲道分割的精确度和稳定性,本文提出了......
  • 基于YOLOv5、YOLOv8和YOLOv10的机场安检行李检测:深度学习应用与实现
    引言随着全球航空运输业的持续增长,机场的安全性变得越来越重要。机场安检作为航空安全的重要组成部分,主要负责对乘客和行李进行检查,防止危险物品进入机场或飞行器。传统的安检方式多依赖人工检查,效率低下且容易出错。因此,基于深度学习的自动化行李检测系统应运而生,通过计算......