Casbin.aspnetcore - это интеграция и расширение Casbin.net для ASP.NET Core.
Этот проект находится на разработке, вы можете установить версию сборки, чтобы попробовать ее.
dotnet add package Casbin . AspNetCore -- version < build package version > Или вы создаете файл NuGet.config в каталоге решения, подобный этому.
< configuration >
< packageSources >
< add key = " nuget.org " value = " https://api.nuget.org/v3/index.json " />
</ packageSources >
</ configuration > Вы должны добавить службу в методе ConfigureServices и добавить промежуточное программное обеспечение в методе Configure , подобном этому:
public void ConfigureServices ( IServiceCollection services )
{
// Other codes...
//Add Casbin Authorization
services . AddCasbinAuthorization ( options =>
{
options . DefaultModelPath = "<model path>" ;
options . DefaultPolicyPath = "<policy path>" ;
} ) ;
}
public void Configure ( IApplicationBuilder app , IWebHostEnvironment env )
{
// Other codes...
app . UseCasbinAuthorization ( ) ;
// You can add this to support offical authorization too.
app . UseAuthorization ( ) ;
// Other codes...
}Теперь вы можете использовать атрибут, такой как Offical Authorization, если вы используете базовую модель, ей понравится это:
[ CasbinAuthorize ( "<obj>" , "<act>" ) ]
public IActionResult Index ( )
{
return View ( ) ;
} Вот диаграмма последовательности, которая может хорошо описать процесс этого промежуточного программного обеспечения. Вначале это выглядит как процесс официального промежуточного программного обеспечения. Это меняется в последней половине части.
Образцы приложений с использованием Casbin.AspNetCore можно найти в каталоге образцов.
public interface IEnforcerProvider
{
// Before
public Enforcer ? GetEnforcer ( ) ;
// Now
public IEnforcer ? GetEnforcer ( ) ;
} public interface ICasbinModelProvider
{
// Before
public Model ? GetModel ( ) ;
// Now
public IModel ? GetModel ( ) ;
} Этот проект находится под лицензией Apache 2.0. См. Файл лицензии для полного текста лицензии.