Casbin.aspnetcore ist eine Integration und Erweiterung von Casbin.net für ASP.Net Core.
Dieses Projekt befasst sich mit der Entwicklung. Sie können die Build -Version installieren, um sie auszuprobieren.
dotnet add package Casbin . AspNetCore -- version < build package version > Oder Sie erstellen eine NuGet.config -Datei auf Ihrem Lösungsverzeichnis wie diesem.
< configuration >
< packageSources >
< add key = " nuget.org " value = " https://api.nuget.org/v3/index.json " />
</ packageSources >
</ configuration > Sie sollten den Dienst bei ConfigureServices -Methode hinzufügen und Middleware bei Configure Methode wie folgt hinzufügen:
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...
}Jetzt können Sie das Attribut wie die offizielle Autorisierung verwenden. Wenn Sie das Basismodell verwenden, wird dies gefallen:
[ CasbinAuthorize ( "<obj>" , "<act>" ) ]
public IActionResult Index ( )
{
return View ( ) ;
} Hier ist ein Sequenzdiagramm, das den Prozess dieser Middleware gut beschreiben kann. Am Anfang sieht es nach dem Prozess der offiziellen Middleware aus. Es ändert sich im letzten Hälfte.
Beispielanwendungen mit Casbin.AspNetCore finden Sie im Beispielverzeichnis.
public interface IEnforcerProvider
{
// Before
public Enforcer ? GetEnforcer ( ) ;
// Now
public IEnforcer ? GetEnforcer ( ) ;
} public interface ICasbinModelProvider
{
// Before
public Model ? GetModel ( ) ;
// Now
public IModel ? GetModel ( ) ;
} Dieses Projekt befindet sich unter Apache 2.0 -Lizenz. In der Lizenzdatei finden Sie den vollständigen Lizenztext.