{"id":13824343,"url":"https://github.com/JonPSmith/AuthPermissions.AspNetCore","last_synced_at":"2025-07-08T19:31:45.430Z","repository":{"id":37703960,"uuid":"370404201","full_name":"JonPSmith/AuthPermissions.AspNetCore","owner":"JonPSmith","description":"This library provides extra authorization and multi-tenant features to an ASP.NET Core application.","archived":false,"fork":false,"pushed_at":"2024-08-20T08:39:06.000Z","size":5882,"stargazers_count":790,"open_issues_count":6,"forks_count":160,"subscribers_count":31,"default_branch":"main","last_synced_at":"2024-11-01T22:07:41.970Z","etag":null,"topics":["asp-net-core","aspnetcore","authorization","jwt-token","multi-tenant","saas"],"latest_commit_sha":null,"homepage":"https://www.thereformedprogrammer.net/finally-a-library-that-improves-role-authorization-in-asp-net-core/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JonPSmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-24T15:43:11.000Z","updated_at":"2024-10-30T19:35:34.000Z","dependencies_parsed_at":"2023-02-02T08:00:27.041Z","dependency_job_id":"5f640b55-ed05-45b1-bf31-2c1b129e0cdd","html_url":"https://github.com/JonPSmith/AuthPermissions.AspNetCore","commit_stats":{"total_commits":473,"total_committers":5,"mean_commits":94.6,"dds":0.008456659619450302,"last_synced_commit":"2104e46bbdf4d28aa890670d124c45731d179bbd"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonPSmith%2FAuthPermissions.AspNetCore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonPSmith%2FAuthPermissions.AspNetCore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonPSmith%2FAuthPermissions.AspNetCore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonPSmith%2FAuthPermissions.AspNetCore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JonPSmith","download_url":"https://codeload.github.com/JonPSmith/AuthPermissions.AspNetCore/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225457766,"owners_count":17477351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net-core","aspnetcore","authorization","jwt-token","multi-tenant","saas"],"created_at":"2024-08-04T09:01:01.256Z","updated_at":"2025-07-08T19:31:45.423Z","avatar_url":"https://github.com/JonPSmith.png","language":"C#","funding_links":[],"categories":["C# #"],"sub_categories":[],"readme":"# AuthPermissions.AspNetCore\n\nThe AuthPermissions.AspNetCore library (shortened to AuthP) provides extra authorization features to a ASP.NET Core application. Here are AuthP's three main features:\n\n- An improved Role authorization system where the features a Role can access can be changed by an admin user (i.e. no need to edit and redeploy your application when a Role changes).\n- Provides features to create a multi-tenant database system, either using one-level tenant or multi-level tenant (hierarchical).\n- Implements a JWT refresh token feature to improve the security of using JWT Token in your application.\n\nThe AuthP is an open-source library under the MIT licence (and remain as a open-source library for ever) and the NuGet package can be [found here](https://www.nuget.org/packages/AuthPermissions.AspNetCore/). **The documentation can be found in the [GitHub wiki](https://github.com/JonPSmith/AuthPermissions.AspNetCore/wiki)** and the AuthP [roadmap](https://github.com/JonPSmith/AuthPermissions.AspNetCore/discussions/2) defines the different versions of this library. \n\n## List of versions and which .NET framework they support\n\n- Version 9.?.? supports NET 9 only (simpler to update to next NET release)\n- Version 8.?.? supports NET 8 only (simpler to update to next NET release)\n- Version 6.?.? supports NET 6, 7 and 8\n- Version 5.?.? supports NET 6 and 7\n\nIf you have already built your application using an older version, then you need to look at the following \"how up update\" documents\n\n- For AuthPermissions.AspNetCore versions below 9 see [UpdateToVersion9.md](https://github.com/JonPSmith/AuthPermissions.AspNetCore/blob/main/UpdateToVersion9.md)\n- From Migrating from AuthPermissions.AspNetCore 3, 4, 5 to 6.1 see [UpdateToVersion620.md](https://github.com/JonPSmith/AuthPermissions.AspNetCore/blob/main/UpdateToVersion620.md). NOTE: you only need to do this if you are using the \"Sign up for a new tenant, with versioning\" (shortened to \"Sign up Tenant\") feature **AND** your multi-tenant uses [sharding](https://github.com/JonPSmith/AuthPermissions.AspNetCore/wiki/Sharding-explained).\n- From Migrating from AuthPermissions.AspNetCore 3, 4, 5 to 6.0 see [UpdateToVersion6.md](https://github.com/JonPSmith/AuthPermissions.AspNetCore/blob/main/UpdateToVersion5.md)\n\nThe AuthP library also:\n\n- Works with any ASP.NET Core authentication provider. Currently has built-in individual accounts and Azure Active Directory versions, but you can create your own.\n- Works with either Cookie authentication or JWT Token authentication.\n- Contains an admin services to sync the authentication provider users with  AuthP's users.\n- Has a comprehensive set of admin services to manage AuthP's Roles, Tenants and Users.\n\n\n## How to create an AuthPermissions.AspNetCore NuGet package\n\nThe AuthPermissions.AspNetCore library contains more than one project. For this reason you can't (currently) create a NuGet package using NuGet values in a .csproj file. For this reason I created a `JonPSmith.MultiProjPack` dotnet tool to create the NuGet package using the following command in a command line on the AuthPermissions.AspNetCore directory. \n\n_See [`JonPSmith.MultiProjPack` GitHub](https://github.com/JonPSmith/MultiProgPackTool) for why I created the `JonPSmith.MultiProjPack` and more about its features._\n\n### 1. Install the MultiProjPack dotnet tool\n\nOn your computer you need to install the global tool using the command below (see [this documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/global-tools) to learn about global tools).\n\n`dotnet tool install JonPSmith.MultiProjPack --global`\n\n_NOTE: To update the MultiProjPack .NET tool you need to run the command `dotnet tool update JonPSmith.MultiProjPack --global`. Or to uninstall this tool you should use `dotnet tool uninstall JonPSmith.MultiProjPack --global` command._\n\n### 2. Compile the AuthPermissions.AspNetCore in release Mode\n\nYou must select \"Release\" compile mode and then use the \"Build \u003e Rebuild Solution\" to ensure a new release version of the AuthPermissions.AspNetCore is available.\n\n### 3. Run the `MultiProjPack` tool to create the \n\nYou run the `MultiProjPack` tool from a command line in the `AuthPermissions.AspNetCore` directory. I use Visual Studio's \"Open in Terminal\" using the command below (\"R\" is short for \"Release\")\n\n```console\nMultiProjPack R\n```\n\n*NOTE: If you want to create a new version of the NuGet package you must update the NuGet `version` and most likely the `releaseNotes` in the `MultiProjPack.xml` before you call the `MultiProjPack` tool.*\n\nThe created .nupkg file will be found in the `AuthPermissions.AspNetCore.nupkg` directory AND in the user's `{USERPROFILE}\\LocalNuGet` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJonPSmith%2FAuthPermissions.AspNetCore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJonPSmith%2FAuthPermissions.AspNetCore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJonPSmith%2FAuthPermissions.AspNetCore/lists"}