0

背景

我有一个自定义 C# 插件,它不允许为特定角色激活/停用某些实体。我使用RetrieveEntityRequest来获取插件正在执行的实体的 EntityMetadata,并查找DisplayCollectionName.LocalizedLabels.First().Label以获取实体的显示名称,并在错误消息中将其显示给用户:

拒绝访问您无权访问“我的自定义实体”

调用RetreieveEntityRequest被包装在一个吃掉任何异常的try catch 中,而是显示逻辑名称(即new_mycustomentity)。

问题

当对实体或关系没有读取权限的用户执行插件时,将显示逻辑名称(由于用户没有权限)。

如何显示实体的显示名称,同时保持插件注册为“在调用用户的上下文中运行”并且不授予用户对实体和关系的读取权限?

4

1 回答 1

3

您可以以 SYSTEM 用户身份创建服务实例,并执行RetrieveEntityRequest以获取标签,而不管当前用户权限如何

IOrganizationService service = serviceFactory.CreateOrganizationService(null); 
于 2013-06-17T17:33:46.573 回答