Innovabit.DotNet.Interceptors.Authorization.AspNetCore 2.0.117

dotnet add package Innovabit.DotNet.Interceptors.Authorization.AspNetCore --version 2.0.117
                    
NuGet\Install-Package Innovabit.DotNet.Interceptors.Authorization.AspNetCore -Version 2.0.117
                    
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="Innovabit.DotNet.Interceptors.Authorization.AspNetCore" Version="2.0.117" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Innovabit.DotNet.Interceptors.Authorization.AspNetCore" Version="2.0.117" />
                    
Directory.Packages.props
<PackageReference Include="Innovabit.DotNet.Interceptors.Authorization.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 Innovabit.DotNet.Interceptors.Authorization.AspNetCore --version 2.0.117
                    
#r "nuget: Innovabit.DotNet.Interceptors.Authorization.AspNetCore, 2.0.117"
                    
#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 Innovabit.DotNet.Interceptors.Authorization.AspNetCore@2.0.117
                    
#: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=Innovabit.DotNet.Interceptors.Authorization.AspNetCore&version=2.0.117
                    
Install as a Cake Addin
#tool nuget:?package=Innovabit.DotNet.Interceptors.Authorization.AspNetCore&version=2.0.117
                    
Install as a Cake Tool

Innovabit.DotNet.Interceptors.Authorization.AspNetCore

ASP.NET Core provider for Innovabit.DotNet.Interceptors.Authorization.Abstractions: [Authorized] and [RequirePermission] are checked against HttpContext.User, using the framework's own authorization services.

Usage

services.AddAuthorization(options =>
    options.AddPolicy("finance", policy => policy.RequireClaim("dept", "finance")));

services
    .AddInterceptors()
    .AddAspNetCoreAuthorization();

services.AddScopedWithInterception<IRefundService, RefundService>();

AddAspNetCoreAuthorization calls AddHttpContextAccessor() for you; AddAuthorization() is yours to configure, since the policies are yours.

How each rule is checked

Rule Checked against
[Authorized] HttpContext.User.Identity.IsAuthenticated
[Authorized(Roles = …)] ClaimsPrincipal.IsInRole — any one of them
[Authorized(Policy = …)] IAuthorizationService.AuthorizeAsync, so your policies apply unchanged
[RequirePermission("x")] A claim of type permission with value x — all of them
services.AddInterceptors().AddAspNetCoreAuthorization(o =>
{
    o.PermissionClaimType = "scope";   // match whatever your identity provider issues
    o.FallBackToPolicies = true;       // try a permission as a policy name when no claim matches
});

FallBackToPolicies is off by default: falling through to the policy system hides a typo in a permission name behind a second lookup, and a missing policy throws rather than denying.

Outside a request

There is no HttpContext in a background job or a hosted service, so there is no caller and every guarded method refuses with AuthenticationRequiredException. That is the safe default. A job that legitimately runs as the system should register an evaluator of its own rather than have this one invent an identity:

services.AddInterceptors()
    .AddAspNetCoreAuthorization()
    .UseAuthorizationEvaluator<SystemOrHttpAuthorizationEvaluator>();

License

MIT

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

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.117 48 10/31/2026
2.0.116 92 10/26/2026
2.0.115 98 10/17/2026
2.0.114 96 10/10/2026
2.0.113 109 10/3/2026
2.0.112 106 9/28/2026
2.0.111 94 9/28/2026
2.0.110 99 9/27/2026
2.0.109 96 9/26/2026
2.0.108 101 9/26/2026
2.0.107 100 9/26/2026
2.0.105 110 9/25/2026
1.0.0.104 98 9/25/2026
1.0.0.103 92 9/25/2026