Casbin.aspnetcore est une intégration et une extension Casbin.NET pour ASP.NET Core.
Ce projet est en développement, vous pouvez installer la version de construction pour l'essayer.
dotnet add package Casbin . AspNetCore -- version < build package version > Ou vous créez un fichier NuGet.config sur votre répertoire de solution comme celui-ci.
< configuration >
< packageSources >
< add key = " nuget.org " value = " https://api.nuget.org/v3/index.json " />
</ packageSources >
</ configuration > Vous devez ajouter le service sur la méthode ConfigureServices et ajouter du middleware sur la méthode Configure comme celle-ci:
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...
}Maintenant, vous pouvez utiliser l'attribut comme l'autorisation officielle, si vous utilisez le modèle de base, il aimera ceci:
[ CasbinAuthorize ( "<obj>" , "<act>" ) ]
public IActionResult Index ( )
{
return View ( ) ;
} Voici un tableau de séquence qui peut bien décrire le processus de ce middleware. Au début, cela ressemble au processus de middleware officiel d'autorisation. Il change dans la dernière moitié.
Des exemples d'applications utilisant Casbin.AspNetCore peuvent être trouvés dans le répertoire de l'échantillon.
public interface IEnforcerProvider
{
// Before
public Enforcer ? GetEnforcer ( ) ;
// Now
public IEnforcer ? GetEnforcer ( ) ;
} public interface ICasbinModelProvider
{
// Before
public Model ? GetModel ( ) ;
// Now
public IModel ? GetModel ( ) ;
} Ce projet est sous la licence Apache 2.0. Voir le fichier de licence pour le texte complet de licence.