安全使用保存的视图

时间:2012-09-12 05:58:10

标签: dynamics-crm-2011

在Dynamics CRM中定义了一个自定义实体,实体E 。 实体E包含两种条目:公开可见条目(种类 PUBLIC )和私人条目(种类私人)。

允许

CRM用户从E中检索这两种条目。另一方面,网站A的用户(面向互联网)只允许检索E的公共子集。

以下步骤可以吗?

  • 为实体E创建一个名为PUBLIC_E_VIEW
  • 的已保存视图
  • 创建具有PUBLIC_E_VIEW
  • 读取权限的安全角色
  • 将该安全角色分配给用户X.
  • 来自网站A的所有请求都将使用“模拟”(X)对crm网络服务执行。

提前谢谢你:)

2 个答案:

答案 0 :(得分:2)

不,我不认为这会达到你想要的效果。

Web服务调用不尊重用户拥有的视图。例如。 PUBLIC_E_VIEW未在Web服务调用中使用。

要使PUBLIC_E_VIEW正常工作,用户X需要对E的读取权限。这意味着任何Web服务都将返回X可以看到的每个E记录用户 - 在这种情况下都是。

我认为在这种情况下,您需要使用业务单位来分隔您的数据。

  • 为每个
  • 分配两个业务单位私人和公共,公共和私人用户
  • 私人是公共的父母
  • 所有私人用户都可以在他们的商业单位和子业务部门阅读E
  • 所有公共用户都可以在他们的商务单元中阅读E
  • 将所有公共和私人E记录分配给正确的用户

这意味着当你在公共单位模仿X时,你不会在私人单位中返回记录。

答案 1 :(得分:1)

我可能误解了你的问题,因为你的术语不清楚。

  

实体E包含两种条目:公开可见的条目......   和私人参赛作品。

您的意思是您的“实体E”(CRM实体定义)包含可公开访问的属性和私有属性这是我假设的< / strong>)或者你的意思是“实体E”类型的某些记录是公共的还是私有的?


我建议您调查CRM 2011“Field Level Security”(FLS)概念。这允许您保护字段的子集并使它们仅对特定用户可用(即 >绑定到角色)。此安全性适用于CRM视图和表单,因此它应适合您通过模拟用户提供所有基于Web的请求的方案。

FLS确实会对性能产生影响。在大批量方案中,您可以考虑将“私有”属性移动到新实体,将其与原始公共实体相关联,并单独保护对私有实体的访问。