DevExpress XAF应用程序的安全方法

时间:2012-07-28 14:05:09

标签: security devexpress xaf

我正在使用DevEx eXpressApp Framework开发Project Management类型的应用程序。 我已经使用它近一年了,但我现在才开始使用它的安全模型,并希望在定义实现需求的方法方面有所帮助。

我有两个类:Project和Tasks。 Project包含一个子XPCollection(Property)的Tasks(名为Tasks),这样我就可以输入Project.Tasks.Add(Task t); 我需要做的就是提供一种方法,使用户能够在任务集合中查看和编辑特定任务。作为Admin用户,我需要一种方法将用户1“分配”到项目P1的任务1和3以及项目P2的任务4。 然后我会 - 例如 - 将用户2分配给项目P1的任务2和P2的任务1-3 将始终有新项目,因此我需要一种灵活的方式在应用程序内临时分配/取消分配用户。

  1. 项目1

    • 任务1 - 用户1
    • 任务2 - 用户2
    • 任务3 - 用户1
  2. 项目2

    • 任务1 - 用户2
    • 任务2 - 用户2
    • 任务3 - 用户2
    • 任务4 - 用户1
  3. 当用户1登录并单击项目1(在ListandDetailView中)时,他们只会看到已分配给他们的任务。 用户2也是如此。 用户都不会看到任何项目的整个任务集。

    我创建了一个虚拟项目,并且只能达到每个用户看到所有任务或没有任何任务的程度。我认为对象权限(使用标准)方法是可行的方法,但无法考虑使用什么标准。

    我很乐意设计与安全模型相关的建议。角色/小组/新班等。

    但请忽略此处未提及的任何可能的应用程序设计问题,如“任务之间的依赖关系......等等”。我有一个非常具体的要求。

    请帮忙!

    附加随机信息以防万一。

    1. 您运行的是哪个版本的软件? DevExpress 12.1(vx2)
    2. 你的操作系统是什么? Windows Server 2008
    3. 你到底想要做什么是行不通的? 在应用程序中设置安全性以限制登录用户查看对象的子集合中的特定项目的能力
    4. 问题是统一还是不稳定? 均匀
    5. 确切的错误消息是什么? 还没有错误;到目前为止,我已经想出如何显示集合中的所有项目或没有
    6. 什么时候出现? N / A
    7. 你究竟不“得到”什么? 如何配置安全模型以实现我的要求
    8. 您能提供示例代码,理想情况下会出现错误发生的行错误吗? 还没有任何代码;只需选择各种读/写/导航等复选框。

1 个答案:

答案 0 :(得分:1)

您有两个选择

  • 使用“新”安全documented here并使用“读取”对象权限(如您所建议的)使用Task.User = CurrentUserId()
  • 之类的标准
  • 使用ViewControllers using the method described here处理过滤,其优点是也可以使用旧的(11.2之前的)安全系统。

第一种方法更可取,但第二种方法可以让您获得更多控制权,如果您确定任务的“所有权”的规则过于复杂而无法通过简单的标准来描述,则可能会更好。