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 Policies class so typos become build errors, not runtime 403s.
  • Composition — Extends, And, Or.
  • Zero runtime cost — produces standard AuthorizationPolicy instances.

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