ClaimsPolicyBuilder
A fluent DSL for building ASP.NET Core claims-based authorization policies with compile-time safety.
- Fluent DSL — express a policy in 1–2 readable lines.
- Compile-time policy name constants — a Roslyn source generator emits a
Policiesclass so typos become build errors, not runtime 403s. - Composition —
Extends,And,Or. - Zero runtime cost — produces standard
AuthorizationPolicyinstances.
Install
dotnet add package ClaimsPolicyBuilder
Quick start
services.AddClaimsPolicies(policies =>
{
policies.Add("CanEditInvoices")
.RequireAuthenticated()
.RequireScope("invoices:write")
.RequireAnyRole("Accountant", "Admin")
.RequireClaim("tenant", "acme");
policies.Add("AdminOnly")
.RequireRole("Admin")
.Or(p => p.RequireClaim("override", "true"));
});
// Generated constant — compile-checked.
[Authorize(Policy = Policies.CanEditInvoices)]
public IResult EditInvoice() { ... }
Learn more
- API reference — generated from the library's XML doc comments.
- Source, samples, and full README on GitHub.