casbin aspnetcore
v1.4.0
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...
}ตอนนี้คุณสามารถใช้แอตทริบิวต์เช่นการอนุญาตอย่างเป็นทางการหากคุณใช้โมเดลพื้นฐานมันจะชอบสิ่งนี้:
[ 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 ดูไฟล์ใบอนุญาตสำหรับข้อความใบอนุญาตเต็มรูปแบบ