0

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

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

以下步骤可以吗?

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

先感谢您 :)

4

2 回答 2

2

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

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

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

例如,我认为在您需要使用业务部门来分离数据的情况下。

  • 两个业务单元 Private 和 Public,公共和私人用户分配给每个
  • 私有是公共的父级
  • 所有私人用户都可以在其业务单元和子业务单元中读取 E
  • 所有公共用户都可以在其业务单元中阅读 E
  • 将所有公共和私人 E 记录分配给正确的用户

这意味着当您在公共单元中冒充 X 时,您将不会在私有单元中返回记录。

于 2012-09-12T08:56:42.253 回答
1

由于您的术语不清楚,我可能误解了您的问题。

实体 E 包含两种条目:公开可见的条目……和私人条目。

您的意思是您的“实体 E”(CRM 实体定义)包含可公开访问的属性和私有属性这是我假设的)还是您的意思是“实体 E”类型的某些记录是公开的并且一些私人的?


我建议您调查 CRM 2011“现场级安全”(FLS) 概念。这允许您保护字段的子集并使其仅对特定用户可用(即它绑定到角色)。这种安全性适用于 CRM 视图和表单,因此它应该适合您的场景,即所有基于 Web 的请求都来自模拟用户。

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

于 2012-09-12T08:55:52.957 回答