Casbin.aspnetcore es una integración y extensión Casbin.net para ASP.NET Core.
Este proyecto está en desarrollo, puede instalar la versión de compilación para probarlo.
dotnet add package Casbin . AspNetCore -- version < build package version > O crea un archivo NuGet.config en su directorio de soluciones como este.
< configuration >
< packageSources >
< add key = " nuget.org " value = " https://api.nuget.org/v3/index.json " />
</ packageSources >
</ configuration > Debe agregar el servicio en el método ConfigureServices y agregar middleware al método Configure como este:
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...
}Ahora puede usar el atributo como autorización oficial, si usa el modelo básico, le gustará esto:
[ CasbinAuthorize ( "<obj>" , "<act>" ) ]
public IActionResult Index ( )
{
return View ( ) ;
} Aquí hay una tabla de secuencia que puede describir bien el proceso de este middleware. Al principio, se parece al proceso de middleware de autorización oficial. Cambia en la última mitad.
Las aplicaciones de muestra que utilizan Casbin.AspNetCore se pueden encontrar en el directorio de muestra.
public interface IEnforcerProvider
{
// Before
public Enforcer ? GetEnforcer ( ) ;
// Now
public IEnforcer ? GetEnforcer ( ) ;
} public interface ICasbinModelProvider
{
// Before
public Model ? GetModel ( ) ;
// Now
public IModel ? GetModel ( ) ;
} Este proyecto está bajo la licencia Apache 2.0. Consulte el archivo de licencia para el texto completo de la licencia.