DKNet.EfCore.DataAuthorization
10.1.1
See the version list below for details.
dotnet add package DKNet.EfCore.DataAuthorization --version 10.1.1
NuGet\Install-Package DKNet.EfCore.DataAuthorization -Version 10.1.1
<PackageReference Include="DKNet.EfCore.DataAuthorization" Version="10.1.1" />
<PackageVersion Include="DKNet.EfCore.DataAuthorization" Version="10.1.1" />
<PackageReference Include="DKNet.EfCore.DataAuthorization" />
paket add DKNet.EfCore.DataAuthorization --version 10.1.1
#r "nuget: DKNet.EfCore.DataAuthorization, 10.1.1"
#:package DKNet.EfCore.DataAuthorization@10.1.1
#addin nuget:?package=DKNet.EfCore.DataAuthorization&version=10.1.1
#tool nuget:?package=DKNet.EfCore.DataAuthorization&version=10.1.1
DKNet.EfCore.DataAuthorization
A .NET library for secure, multi-tenant data authorization in Entity Framework Core. Enables automatic filtering of data based on ownership, supports DDD and API scenarios, and is designed for extensibility.
Features
- Automatic global query filtering based on data ownership keys
- Interfaces for associating entities with owners (
IOwnedBy), providing ownership keys (IDataOwnerProvider), and integrating with DbContext (IDataOwnerDbContext) - Extension methods for easy setup via dependency injection (
EfCoreDataAuthSetup) - Support for multi-tenancy and secure data isolation
- .NET 9.0 compatible
Installation
Add the NuGet package to your project:
dotnet add package DKNet.EfCore.DataAuthorization
Usage
Register the data authorization provider and setup in your DI container:
using Microsoft.Extensions.DependencyInjection;
using DKNet.EfCore.DataAuthorization;
services.AddAutoDataKeyProvider<MyDbContext, MyOwnerProvider>();
Implement IOwnedBy on your entities:
public class Document : IOwnedBy
{
public string? OwnedBy { get; private set; }
public void SetOwnedBy(string ownerKey) => OwnedBy = ownerKey;
}
Implement IDataOwnerProvider to supply ownership keys and accessible keys:
public class MyOwnerProvider : IDataOwnerProvider
{
public IEnumerable<string> GetAccessibleKeys() => ...; // e.g., from user context
public string GetOwnershipKey() => ...; // e.g., current user's tenant key
}
API
EfCoreDataAuthSetup.AddAutoDataKeyProvider<TDbContext, TProvider>(IServiceCollection): Registers automatic data key management for a DbContext.IOwnedBy: Interface for entities supporting ownership, with methods to get/set the owner key.IDataOwnerProvider: Interface for providing accessible keys and ownership key for new entities.IDataOwnerDbContext: Interface for DbContexts supporting data authorization, exposing accessible keys.
License
MIT © 2026 drunkcoding
Repository
https://github.com/baoduy/DKNet
Contributing
Pull requests and issues are welcome!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- DKNet.EfCore.Extensions (>= 10.1.1)
- DKNet.EfCore.Hooks (>= 10.1.1)
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 |
|---|---|---|
| 10.1.10 | 32 | 8/22/2026 |
| 10.1.9 | 48 | 8/22/2026 |
| 10.1.8 | 41 | 8/21/2026 |
| 10.1.7 | 68 | 8/21/2026 |
| 10.1.6 | 49 | 8/21/2026 |
| 10.1.5 | 71 | 8/20/2026 |
| 10.1.4 | 77 | 8/20/2026 |
| 10.1.3 | 82 | 8/19/2026 |
| 10.1.2 | 75 | 8/19/2026 |
| 10.1.1 | 78 | 8/19/2026 |
| 10.0.36 | 92 | 8/18/2026 |
| 10.0.35 | 107 | 8/5/2026 |
| 10.0.34 | 95 | 8/5/2026 |
| 10.0.33 | 100 | 8/4/2026 |
| 10.0.32 | 97 | 8/3/2026 |
| 10.0.31 | 112 | 7/21/2026 |
| 10.0.30 | 97 | 7/21/2026 |
| 10.0.29 | 132 | 6/22/2026 |
| 10.0.27 | 136 | 5/22/2026 |
| 10.0.26 | 108 | 5/19/2026 |