1

我想从 systemuser 实体的安全角色中删除 READ 权限,并在每个新的 systemuser 创建时执行一个插件——它会将 READ 授予特定用户,以便他们只能看到他/她的 systemuser 记录。该插件必须异步运行在链中的最后一个。

在我的插件中,我使用以下代码为用户分配读取权限,

                    EntityReference systemUser = PostImage.ToEntityReference();
                    GrantAccessRequest grantRequest = new GrantAccessRequest()
                    {
                        Target = systemUser,
                        PrincipalAccess = new PrincipalAccess()
                        {
                            Principal = systemUser,
                            AccessMask = AccessRights.ReadAccess 
                        }
                    };

                    GrantAccessResponse grantResponse =
                        (GrantAccessResponse)XrmServiceContext.Execute(grantRequest);

但是当我创建一个新用户并使用该凭据登录时,这似乎没有任何改变。所有系统用户记录都是可见的!我做错了什么?当前 systemuser 已在 crm 安全角色中读取权限设置为“组织”。

任何帮助将非常感激。谢谢!

4

1 回答 1

0

您不需要在插件或任何其他类型的代码中执行此操作。通过 PrincipalObjectAccess ('POA') 表中的行,所有用户都被授予他们自己的用户记录和用户设置的显式共享。

于 2014-09-26T14:40:47.673 回答