扩展基于角色的安全性,以允许特定实体的角色



我在另一个MVC应用程序中使用过FluentSecurity,它很棒,提供了一个流畅的实现。

我现在需要提供应用程序范围的角色,以及对单个实体提供额外的权限控制。

我的应用程序管理特定的位置,用户可能有权限在一个或多个位置执行操作,每个位置都有一个唯一的id。我需要检查用户的位置id是否具有特定的角色(有效地为角色添加了另一个维度)。我已经把我的模式映射出来了,还有我的repo/服务层。

我想知道是否有人以前解决过这种类型的问题,是否值得我尝试用FluentSecurity来解决,或者我是否应该验证用户在每个GET/POST请求(控制器或服务层)上具有位置所需的角色。

我要在FluentSecurity中实现这一点,我将不得不滚动我自己的策略并从RequestContext.RouteData中捕获位置id。

我还没有完全完成您需要做的事情,但是在FluentSecurity中创建一个处理您的场景的自定义策略应该一点也不难。如果你觉得有问题,请告诉我,我会解决的。

您可以在这里找到有关如何创建自定义策略的更多信息:

https://github.com/kristofferahl/FluentSecurity/wiki/Custom-policies

听起来你可能想把它分成两个自定义策略。然后像这样应用自定义策略:

configuration.For<SomeController>()
    .AddPolicy<CustomPolicy1>()
    .AddPolicy<CustomPolicy2>();

最新更新