Aibek.Auth.AccessControl
3.1.0
See the version list below for details.
dotnet add package Aibek.Auth.AccessControl --version 3.1.0
NuGet\Install-Package Aibek.Auth.AccessControl -Version 3.1.0
<PackageReference Include="Aibek.Auth.AccessControl" Version="3.1.0" />
paket add Aibek.Auth.AccessControl --version 3.1.0
#r "nuget: Aibek.Auth.AccessControl, 3.1.0"
// Install Aibek.Auth.AccessControl as a Cake Addin
#addin nuget:?package=Aibek.Auth.AccessControl&version=3.1.0
// Install Aibek.Auth.AccessControl as a Cake Tool
#tool nuget:?package=Aibek.Auth.AccessControl&version=3.1.0
Introduction
This library helps to check if user has access to the data and configure the data so that user gets only permitted data. It also checks if user has permission to perform specific operation with data through Breeze Context Provider.
Getting Started
- Install library with command Install-Package Aibek.Auth.AccessControl or use Nuget Package Manager.
- Project has to use .NET Core 2.2 or above
- Use attributes CanAddAttribute, CanReadAttribute, CanUpdateAttribute, CanDeleteAttribute with classes to configure which permission should user have in order to perform some kind of entity operation. Use attributes CanReadAttribute, CanUpdateAttribute with properties in order to configure which permission should user have in order to read or update a specific property. Example:
[CanRead("Products.Details")]
[CanAdd("Products.Add")]
[CanDelete("Products.Delete")]
[CanUpdate("Products.Update)"]
public Product Product
{
[CanRead("Products.Details.Name")]
[CanUpdate("Products.Update.Name")]
public string Name { get; set; }
}
If you want to enable access check in context of some entity, you can specify its key, like it is kept in headers and pass IHttpContextAccessor to AccessCheck constructor.
[CanRead("Products.Details", "CompanyId")]
[CanAdd("Products.Add", "CompanyId")]
[CanDelete("Products.Delete", "CompanyId")]
[CanUpdate("Products.Update", "CompanyId")]
public Product Product
{
[CanRead("Products.Details.Name")]
[CanUpdate("Products.Update.Name")]
public string Name { get; set; }
}
- Create object of AccessChecker<BaseType> where BaseType is interface that all your entities implement
- Use method object AccessChecker<BaseType>.SecureData(object entity) to hide data that is not permitted to user.
- Use method bool CheckAccess(EntityInfo entityInfo) when you save changes to check if the operation is allowed to current user.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp2.2 is compatible. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
-
.NETCoreApp 2.2
- Breeze.ContextProvider.EFCore (>= 1.0.1)
- Microsoft.AspNetCore.Mvc.Core (>= 2.2.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Добавлена возможность настроить, будет ли проверяться доступ пользователя к полям сущности