MyCSharp.HttpUserAgentParser.AspNetCore 1.0.0

There is a newer version of this package available.
See the version list below for details.

Requires NuGet 2.12 or higher.

dotnet add package MyCSharp.HttpUserAgentParser.AspNetCore --version 1.0.0
                    
NuGet\Install-Package MyCSharp.HttpUserAgentParser.AspNetCore -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MyCSharp.HttpUserAgentParser.AspNetCore" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MyCSharp.HttpUserAgentParser.AspNetCore" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="MyCSharp.HttpUserAgentParser.AspNetCore" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MyCSharp.HttpUserAgentParser.AspNetCore --version 1.0.0
                    
#r "nuget: MyCSharp.HttpUserAgentParser.AspNetCore, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MyCSharp.HttpUserAgentParser.AspNetCore@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MyCSharp.HttpUserAgentParser.AspNetCore&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=MyCSharp.HttpUserAgentParser.AspNetCore&version=1.0.0
                    
Install as a Cake Tool

MyCSharp.HttpUserAgentParser.AspNetCore

ASP.NET Core integration for MyCSharp.HttpUserAgentParser.

Repository: https://github.com/mycsharp/HttpUserAgentParser

Install

dotnet add package MyCSharp.HttpUserAgentParser.AspNetCore

Quick start

Register a provider (any of the available ones) and then add the accessor:

The accessor pattern reads the User-Agent header from the current HttpContext and parses it using the registered provider.

services
	.AddHttpUserAgentMemoryCachedParser() // or: AddHttpUserAgentParser / AddHttpUserAgentCachedParser
	.AddHttpUserAgentParserAccessor();

Usage:

public sealed class MyController(IHttpUserAgentParserAccessor accessor)
{
	public HttpUserAgentInformation Get() => accessor.Get();
}

Just read the header

If you only want the raw User-Agent string:

string? ua = HttpContext.GetUserAgentString();

Telemetry (EventCounters)

Telemetry is modular and opt-in.

Enable (Fluent API)

services
	.AddHttpUserAgentParserAccessor()
	.WithAspNetCoreTelemetry();

The accessor registration returns the same options object, so you can chain this after any parser registration.

EventSource + counters

EventSource: MyCSharp.HttpUserAgentParser.AspNetCore (constant: HttpUserAgentParserAspNetCoreEventSource.EventSourceName)

  • user_agent.present (incrementing)
  • user_agent.missing (incrementing)

Monitor with dotnet-counters

dotnet-counters monitor --process-id <pid> MyCSharp.HttpUserAgentParser.AspNetCore

Telemetry (native Meters)

This package can also emit native System.Diagnostics.Metrics instruments.

Enable meters (Fluent API)

services
	.AddHttpUserAgentParserAccessor()
	.WithAspNetCoreMeterTelemetry();

Meter + instruments

Meter: MyCSharp.HttpUserAgentParser.AspNetCore (constant: HttpUserAgentParserAspNetCoreMeters.MeterName)

  • user_agent.present (counter)
  • user_agent.missing (counter)

Export to OpenTelemetry / Application Insights

Collect via OpenTelemetry EventCounters instrumentation:

using OpenTelemetry.Metrics;

metrics.AddEventCountersInstrumentation(options =>
{
	options.AddEventSources(HttpUserAgentParserAspNetCoreEventSource.EventSourceName);
});

Then export using your preferred exporter (OTLP, Prometheus, Azure Monitor / Application Insights, …).

Export native meters to OpenTelemetry

If you enabled native meters (see above), collect them via AddMeter(...):

using OpenTelemetry.Metrics;
using MyCSharp.HttpUserAgentParser.AspNetCore.Telemetry;

metrics.AddMeter(HttpUserAgentParserAspNetCoreMeters.MeterName);
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on MyCSharp.HttpUserAgentParser.AspNetCore:

Package Downloads
Zoo.GenericApp.Logic

Базовая логика для для приложения на Croco, включена поддержка Clt, Ecc, Doc, Js-Open-Api. Содержатся основные Background сервисы необходимые для работы веб-приложения.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on MyCSharp.HttpUserAgentParser.AspNetCore:

Repository Stars
AscensionGameDev/Intersect-Engine
Intersect provides a complete game development suite for creating 2d mmorpgs with no programming experience required!
Version Downloads Last Updated
3.1.2 77 2/19/2026
3.0.28 44,702 8/25/2025
3.0.27 271 8/23/2025
3.0.25 23,915 4/26/2025
3.0.23 2,190 4/12/2025
3.0.21-gd594614d04 233 3/31/2025
3.0.20-g7795a06d24 210 3/20/2025
3.0.19-g3452a5347c 154 3/15/2025
3.0.18-gbf6637cea6 962 3/2/2025
3.0.13 10,541 2/25/2025
3.0.13-g9ebf55cc61 191 2/25/2025
3.0.12 250 2/25/2025
3.0.12-g2db20cc097 707 1/25/2025
3.0.11 8,216 1/25/2025
3.0.11-gd806c9c385 156 1/14/2025
3.0.10 10,826 1/14/2025
3.0.10-g39a7b02192 203 11/12/2024
3.0.9 59,239 11/12/2024
3.0.8 7,314 11/1/2024
1.0.0 34 2/19/2026
Loading failed