我们在这里处于同一条船上,当然,除了来源之外,没有太多阅读……
我们最终实施了政策。策略是满足授权所需的一组声明。然后可以将这些策略应用于控制器。
您可以在 Startup.cs、ConfigureServices 中定义您的策略:
services.AddAuthorization(options =>
{
options.AddPolicy("SalesSenior", policy =>
{
policy.RequireClaim("department", "sales");
policy.RequireClaim("status", "senior");
});
});
我们定义了角色,为它们分配了 1 个或多个声明,并为用户分配了角色,以便在点击控制器时根据适当的策略检查它们。
您可以注入IAuthorizationService
进入控制器或属性,如下所示:
public class SalesDashboardController: Controller
{
private readonly IAuthorizationService _authz;
public VarianceOverviewController(IAuthorizationService authz)
{
_authz = authz;
}
...
}
然后您可以使用IAuthorizationService
检查用户声明的有效性...
if (await _authz.AuthorizeAsync(User, "SalesSenior"))
{
// User is authorized
}
本文 http://leastprivilege.com/2015/10/12/the-state-of-security-in-asp-net-5-and-mvc-6-authorization/是我这些东西的主要来源,对我来说是一个很好的入门读物。祝你好运!