This is a sample project that can be used for quickly adding RBAC to your .NET project. All user information is stored in the configuration file so there is not need for adding support for a database system.
You can run the sample code by running from the SimpleRBAC
folder:
dotnet run
If you log in a user you can observe that access is denied wheen you try to access http://localhost:5247/Home/Admin
You need to copy in your project the Account
controller and the corresponding views. You need also to add the following lined in your
Program.cs
:
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Account/Login";
});
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
...
app.UseAuthentication();
app.UseAuthorization();
Finally, add user accounts in you configuration file (see for example the provided appsettings.Development.json
file).
You can read my blog post. Open an issue if you need support.