PrimusSaaS.Rbac.AspNetCore
2.0.0
dotnet add package PrimusSaaS.Rbac.AspNetCore --version 2.0.0
NuGet\Install-Package PrimusSaaS.Rbac.AspNetCore -Version 2.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="PrimusSaaS.Rbac.AspNetCore" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PrimusSaaS.Rbac.AspNetCore" Version="2.0.0" />
<PackageReference Include="PrimusSaaS.Rbac.AspNetCore" />
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 PrimusSaaS.Rbac.AspNetCore --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PrimusSaaS.Rbac.AspNetCore, 2.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 PrimusSaaS.Rbac.AspNetCore@2.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=PrimusSaaS.Rbac.AspNetCore&version=2.0.0
#tool nuget:?package=PrimusSaaS.Rbac.AspNetCore&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
PrimusSaaS.Rbac.AspNetCore
Release status: stable integration package for PrimusSaaS.Rbac.
ASP.NET Core integration for PrimusSaaS.Rbac. Provides the [PrimusAuthorize] attribute — drop it on any controller action (or whole controller) to enforce RBAC permission checks automatically, with no manual IRbacService.Evaluate() calls in your controller code.
Quick Start
// Program.cs — register RBAC with a storage adapter
builder.Services.AddPrimusRbacInMemory(); // or AddPrimusRbacEfCore<TContext>()
// Controller usage
[HttpGet("employees")]
[PrimusAuthorize("employees", "read:all")]
public IActionResult GetAll() { ... }
// With optional tenant scoping
[HttpGet("invoices/{tenantId}")]
[PrimusAuthorize("invoices", "read", tenantId: "tenant-abc")]
public IActionResult GetInvoices(string tenantId) { ... }
// Protect an entire controller
[PrimusAuthorize("admin", "read")]
public class AdminController : ControllerBase { ... }
How it works
- Reads
ClaimTypes.NameIdentifier(orClaimTypes.Email) from the currentHttpContext.User. - Collects all
ClaimTypes.Roleclaims from the current user. - Resolves
IRbacServicefrom DI and callsEvaluate(). - Returns HTTP 403 with a structured
ProblemDetailsresponse body if denied — including the denial reason and the user's current roles. - Proceeds to the action if allowed.
Denied response shape
{
"title": "Forbidden",
"status": 403,
"detail": "You don't have permission to perform 'read:all' on 'employees'. Reason: no_match. Your roles: [Viewer]."
}
Common reason values returned by the RBAC engine:
| Value | Meaning |
|---|---|
allow_rule_matched |
A permission with Allow effect matched |
deny_rule_matched |
A permission with Deny effect matched — denies override allows |
no_match |
No role/permission combination matched the request |
Target frameworks
- .NET 6
- .NET 7
- .NET 8
- .NET 9
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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.
-
net10.0
- PrimusSaaS.Rbac (>= 2.0.0)
-
net6.0
- PrimusSaaS.Rbac (>= 2.0.0)
-
net7.0
- PrimusSaaS.Rbac (>= 2.0.0)
-
net8.0
- PrimusSaaS.Rbac (>= 2.0.0)
-
net9.0
- PrimusSaaS.Rbac (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0 | 251 | 3/31/2026 |