gpt4 book ai didi

c# - 使用自定义在数据库中存储不同的用户权限

转载 作者:行者123 更新时间:2023-11-30 17:03:06 25 4
gpt4 key购买 nike

在自定义用户权限中,我们有类似的东西:

  UserId        permission
11100001 ViewThis
11100001 ViewThat
11100002 EditThis
11100003 EditThat

现在,我们希望 ViewThis 更加自定义,例如针对特定的成本中心,因此特定用户只能查看来自特定成本中心的员工。所以我添加了一列 CostCenter。如果它是 NULL 那么这意味着用户可以查看所有成本中心。现在的问题是一些其他权限,例如 ViewThat 也需要自定义,问题是自定义或限制不针对某个成本中心,它确实针对其他因素,例如契约(Contract)类型.因此,具有 ViewThat 权限的用户应仅限于具有特定契约(Contract)类型的员工。所以我添加了另一列 ContractTypeID。在不需要此字段的权限中应忽略此列。有时某个权限需要两个或多个自定义/限制字段。

现在的问题是,每当我需要向权限添加自定义/限制时,表格就会水平增长。有没有更好的方法或最佳实践来处理这种困境?

最佳答案

有一种方法可以在数据模型中将其标准化。让我举个例子:

enter image description here

UserPermission 很清楚,我想。在 Accessible 中,您存储要限制访问的内容:CostCenterContractType、...

根据您的描述,我了解到您想定义可访问性和权限的特定组合(ViewThisCostCenter 上,ViewThat契约(Contract)类型等)。因此,您可以在 AccessiblePermission 中定义这些组合。

当您获得这些组合后,您可以将它们分配给 UserAccessiblePermission 中的用户。

这是授权的定义部分。

授权的执行部分应包含授予所有所有权限的业务逻辑> 用户没有特定权限的可访问性。当有特定权限时,授权会变为none, except

这只是解决此问题的一种方法。如果它 100% 符合您的所有要求,我会感到惊讶,但我希望它能提供一些指导。

关于c# - 使用自定义在数据库中存储不同的用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18989367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com