首页 文章

Servicestack角色用户和组

提问于
浏览
2

由于角色不包含权限 . 我对ServiceStack中的角色和权限感到有些困惑 . 看来他们真的是一回事吗?我想实现一个具有权限的角色组 . 基于servicestack默认实现,我认为我不能扩展提供程序并获取嵌套信息 .

我将如何实现这一点,仍然使用身份验证属性 . 如果我有一个属性

[RequiredPermission("CanAccessPerm")] 
That is in Role:HasAccessRole That is in Group:HasAccessGroup

我想只使用perms来确定API级别的访问权限 . 然后角色和组确定谁有烫发 . 如果Roles包含权限,那么我可以扩展CredentialsAuthProvider TryAuthenticate并另外查看组表 . 有没有办法做到这一点,而不是重写整个身份验证?

1 回答

  • 1

    角色/权限的工作方式类似,用户可以拥有多个角色和权限,但它们在逻辑上是不同的,角色定义了一个人拥有的角色,如“员工”,“经理”等等,权限定义了他们可以访问的功能 . “CanSubmitPurchaseOrders”,“CanRefundCustomers”等

    ServiceStack不支持自己拥有权限的角色,但您可以在自己的自定义AuthProvider中自行实现此功能,方法是覆盖 OnAuthenticated() 并使用用户所在角色中所有权限的组合填充 AuthUserSessionPermissions 集合 . 如果您'如果不使用自定义AuthProvider,您可以通过实现 OnAuthenticated() Session of Auth Event Hooks来修改用户会话 .

    或者,如果您正在使用像 OrmLiteAuthRepository 这样的AuthRepository,则可以通过覆盖其IManageRoles GetPermissions()HasPermission() API来更改管理权限的方式,以便还检查用户角色分配给它们的权限,您需要在这些权限中维护这些权限 . 乐队表 .

相关问题