NeoReports.Licensing
2.0.0
dotnet add package NeoReports.Licensing --version 2.0.0
NuGet\Install-Package NeoReports.Licensing -Version 2.0.0
<PackageReference Include="NeoReports.Licensing" Version="2.0.0" />
<PackageVersion Include="NeoReports.Licensing" Version="2.0.0" />
<PackageReference Include="NeoReports.Licensing" />
paket add NeoReports.Licensing --version 2.0.0
#r "nuget: NeoReports.Licensing, 2.0.0"
#:package NeoReports.Licensing@2.0.0
#addin nuget:?package=NeoReports.Licensing&version=2.0.0
#tool nuget:?package=NeoReports.Licensing&version=2.0.0
NeoReports.Licensing
Offline signed-license validation for NeoReports Pro packages (D70). MIT — the verification logic here is publicly auditable; enforcement comes from the Pro packages refusing to run without a valid key, not from hiding this code.
Registering a license (application code)
With dependency injection:
services.AddNeoReportsProLicense(); // reads the NEOREPORTS_LICENSE_KEY environment variable
// or:
services.AddNeoReportsProLicense("your-license-key-here");
Code-first, with no DI container (this library's typed reports never build one):
ProLicenseGate.Register("your-license-key-here");
Either throws NeoReportsLicenseException immediately if the key is missing, malformed, has an
invalid signature, or is expired — a Pro package won't start with a bad license. Both routes share
one process-wide license state, so configuring it either way (or via the environment variable alone)
unlocks both the DI-registered and the static fluent Pro APIs.
Validating directly
LicenseToken token = ProLicense.Validate(licenseKey);
Console.WriteLine($"Licensed to {token.Licensee}, expires {token.ExpiresAtUtc:yyyy-MM-dd}");
Signing (maintainer tooling only)
LicenseSigner produces a license key from a LicenseToken and an ECDsa P-256 private key. Real
license issuance (the website's 30-day trial flow) is out of scope for this package — this is the
primitive that flow would call, kept private-key-agnostic so the actual signing key never needs to
live in this repo.
using ECDsa privateKey = ECDsa.Create();
privateKey.ImportPkcs8PrivateKey(Convert.FromBase64String(theRealPrivateKey), out _);
string key = LicenseSigner.Sign(
new LicenseToken("Acme Corp", DateTimeOffset.UtcNow, DateTimeOffset.UtcNow.AddDays(30)),
privateKey);
| Product | Versions 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 was computed. 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. |
-
net8.0
-
net9.0
NuGet packages (3)
Showing the top 3 NuGet packages that depend on NeoReports.Licensing:
| Package | Downloads |
|---|---|
|
NeoReports.Xlsx.Pro
NeoReports Pro — streaming multi-sheet XLSX workbook writer (one worksheet per view). |
|
|
NeoReports.QueryBuilder.Pro
NeoReports Pro — visual query builder: a structured query model and a keyset-safe SQL generator (ADR D49, Epic K). |
|
|
NeoReports.Sources.Join.Pro
NeoReports Pro — multi-source composition: enrichment (batched per-page lookup) and keyset merge-join. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0 | 173 | 8/9/2026 |