我想从系统用户实体上的安全角色中删除READ权限,并在每次创建新的系统用户时执行一个插件——它会将READ授予特定用户,以便只有他/她的系统用户记录对他们可见。插件必须异步运行在链中的最后一个。
在我的插件中,我使用以下代码为用户分配读取权限,
EntityReference systemUser = PostImage.ToEntityReference();
GrantAccessRequest grantRequest = new GrantAccessRequest()
{
Target = systemUser,
PrincipalAccess = new PrincipalAccess()
{
Principal = systemUser,
AccessMask = AccessRights.ReadAccess
}
};
GrantAccessResponse grantResponse =
(GrantAccessResponse)XrmServiceContext.Execute(grantRequest);
但是,当我创建一个新用户并使用该凭据登录时,这似乎不会有任何改变。所有系统用户记录都可见!我做错了什么?当前系统用户已在crm安全角色中将读取权限设置为"organization"。
任何帮助都将不胜感激。谢谢
您不需要在插件或任何其他类型的代码中执行此操作。通过PrincipalObjectAccess("POA")表中的行,所有用户都被授予其自己的用户记录和用户设置的显式共享。