I am building a web application using Asp.Net Core 1.1.1 and its authorization / authentication system.
In my startup.cs file, I configured various policies that I need:
public void ConfigureServices(IServiceCollection services)
{
servizi.AddAuthorization(options =>
{
options.AddPolicy("Insert", policyBuilder => policyBuilder .RequireClaim("AllowInsert"));
options.AddPolicy("Update", policyBuilder => policyBuilder .RequireClaim("AllowUpdate"));
options.AddPolicy("Delete", policyBuilder => policyBuilder .RequireClaim("AllowDelete"));
});
}
Then, in the controller, I assigned claims to the role (administrator role):
public async Task<IActionResult> AssignClaimstoAdminRole()
{
await _roleManager.AddClaimAsync(await _roleManager.FindByNameAsync("Administrator"), new Claim("AllowInsert", "true"));
await _roleManager.AddClaimAsync(await _roleManager.FindByNameAsync("Administrator"), new Claim("AllowUpdate", "true"));
await _roleManager.AddClaimAsync(await _roleManager.FindByNameAsync("Administrator"), new Claim("AllowDelete", "true"));
await _loginManager.RefreshSignInAsync(await _userManager.FindByNameAsync(User.Identity.Name));
return RedirectToAction("SomeAction", "MyController");
}
and finally, I protected my views by introducing an authorization service:
@using Microsoft.AspNetCore.Authorization
@inject IAuthorizationService AuthorizationService
@if (await AuthorizationService.AuthorizeAsync(User, "Insert"))
{
<i role="submit" class="fa fa-floppy-o fa-2x"></i>
}
My question:
I would like to get a list of policies created in startup.cs, so in the end I can create a page to add other users / roles, assigning them one or more policies already in the system.
Is there an object that provides a collection of previously added policies? Thanks in advance!