1

我正在使用 ServiceStack,但我不知道我的方式是否适用于 ServiceStack 权限支持的这个要求。

现在规则表结构是:

  • 目标角色
  • 目标用户 ID
  • 否认允许
  • 动作类型枚举
  • 开始日期
  • 结束日期
  • 开始时间
  • 结束时间

  • RunningEnum ([Flags] OnlyOnce=1,Monday=2,....,Sunday=128)

规则:所有管理员不能 (DENY) crateUser (ACTIONTYPEENUM.CREATEUSER) 每周一 (RUNNINGENUM=2) 在 12-17 小时之间 (STARTHOUR=12,ENDHOUR=17)

所以我必须解决这些规则(如果可以的话,我必须绑定 ServiceStack 权限),我的路上是否有任何问题或 C# 中有更好的框架或规则解析器?

4

2 回答 2

1

ServiceStack 的RequireRole 和 RequiredPermissions属性让您可以标记服务需要的角色/权限。RequireRole的实现只调用IAuthSession.HasRole()(或 IAuthSession.HasPermission())来确定用户是否具有指定的角色。

当您注册自己的CustomUserSession时,您可以实现上述方法来完全满足您的需要。

另一种方法是忽略现有的角色/权限支持,只需创建自己的请求过滤器属性,并在您要验证的每个请求之前执行它。

于 2012-07-19T16:25:45.713 回答
0

There is no framework for ACL implemantation in C#. You have to write your own! So do I :)

于 2012-07-29T16:53:18.200 回答