Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PermissionRequirement : IAuthorizationRequirement
- {
- public string Permission { get; }
- public PermissionRequirement(string permission)
- {
- this.Permission = permission;
- }
- }
- //HANDLE
- public class PermissionAuthorizationHandler : AuthorizationHandler<PermissionRequirement>
- {
- UserManager<ApplicationUser> _userManager;
- RoleManager<ApplicationRole> _roleManager;
- private readonly ILogger<PermissionAuthorizationHandler> _logger;
- public PermissionAuthorizationHandler(UserManager<ApplicationUser> userManager, RoleManager<ApplicationRole> roleManager,ILogger<PermissionAuthorizationHandler> logger)
- {
- _userManager = userManager;
- _roleManager = roleManager;
- _logger = logger;
- }
- protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement)
- {
- _logger.LogWarning("Evaluating authorization requirement for ops >= {age}");
- var role = context.User.IsInRole("testes");
- if(role)
- {
- _logger.LogWarning("Evaluating authorization requirement for ops >= {age}");
- }
- // Check the user's age
- return Task.CompletedTask;
- }
- }
- //startup.cs
- options.AddPolicy("Over21Only",
- policy => policy.Requirements.Add(new PermissionRequirement("juliocostaa@icloud.com")));
- });
- //Controller
- [Authorize(Policy = "Over21Only")]
- public IActionResult Index()
- {
- return RedirectToAction("Dashboard1");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement