casbin aspnetcore
v1.4.0
casbin.aspnetcore是ASP.NET核心的CASBIN.NET集成和擴展。
該項目正在開發中,您可以安裝構建版本來嘗試它。
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許可下。有關完整許可文本,請參見許可證文件。