【发布时间】:2017-07-30 14:25:20
【问题描述】:
好的,ASP.NET Core 中基于自定义策略的授权。我有点理解这个新身份框架的想法,但仍然不是 100% 清楚你可以用这个实现什么。假设我们在 HomeController 中有一个名为 List 的 Action。此操作将查询并显示数据库中的产品列表。必须访问此列表的用户必须是营销部门的一部分。因此,在我们的政策中,我们检查用户是否有名为 Division 的索赔,其价值是 Marketing。如果是,那么他将被允许查看列表,否则不允许。我们可以这样装饰我们的动作:
[Authorize(Policy = "ProductsAccess")]
public IActionResult List()
{
//do query and return the products view model
return View();
}
这一切都很好。它会完美运行。
场景 1: 如果我想在产品级别添加策略,并且基于该策略,用户将只能看到他所在部门的产品。所以营销人员会看到他的产品,研发人员会看到他的等等。我怎样才能做到这一点?可以通过政策完成吗?如果是怎么办?
场景 2: 现场级别的访问权限如何?假设我想隐藏某些字段?示例:所有产品都有某些列必须对经理可见而对其他用户隐藏?这可以使用自定义策略来完成吗?如果是怎么办?
【问题讨论】:
标签: c# asp.net-core asp.net-core-identity