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许可下。有关完整许可文本,请参见许可证文件。