【问题标题】:How to restrict access to specific item in entity list in MS Dynamics CRM如何限制对 MS Dynamics CRM 中实体列表中特定项目的访问
【发布时间】:2016-07-31 15:25:59
【问题描述】:

我有几个自定义实体。有两个用户:user1user2

对于一种实体类型,我在列表中有 2 项。

user1 只需要显示一项,user2 只需要显示第二项。

我尝试通过共享对话框管理权限,但它只能限制写入权限,但我需要从列表视图中隐藏项目。

我该怎么做?

【问题讨论】:

    标签: dynamics-crm microsoft-dynamics dynamics-crm-2015


    【解决方案1】:

    CRM 安全模型使用安全角色限制对记录的访问。您可以设置具有本地读取权限的自定义实体,这仅允许用户访问他们拥有的读取记录。

    User1 将拥有 Record1,而 User2 将拥有 Record2。

    或者,您还可以考虑建立业务单位的层次结构,这也细分了数据的可见性。

    查看How role-based security can be used to control access to entities in Microsoft Dynamics CRMThe security model of Microsoft Dynamics CRM 了解更多信息。

    【讨论】:

      【解决方案2】:

      你可以用两个解决方案来完成这个功能。

      解决方案1:使用字段安全配置文件,在此解决方案中,您必须在字段自定义中启用字段安全选项,然后转到自定义>自定义系统>字段安全配置文件,然后您可以看到启用字段安全选项的字段在上一个会话中,然后单击新建按钮并选择用户 1,然后在读取更新创建字段 1 和字段 2 和用户 2 的权限选项之间选择您想要的权限选项。(注意:此选项仅在用户没有时有效t 管理员安全角色。)

      解决方案 2:您可以使用 Javascript 并在客户端处理此操作。首先你必须去形成自定义并添加新库并添加此代码。

      function onload() 
      {
          checkUser(); 
      }  
      
      function checkUser() 
      {
          var userID = Xrm.Page.context.getUserId();
          if( userID == "user1 id")
          {
              Xrm.Page.getControl("field1").setVisible(true);
              Xrm.Page.getControl("field2").setVisible(false);
          }
          else if( userID == "user2 id")
          {
              Xrm.Page.getControl("field1").setVisible(false);
              Xrm.Page.getControl("field2").setVisible(true);
          }
      }
      

      然后在加载事件的表单中调用 onload 函数,一切都很好:)

      希望你的问题解决了:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-11
        • 1970-01-01
        • 2021-03-18
        • 1970-01-01
        • 2014-12-01
        相关资源
        最近更新 更多