Dynamics crm 2011 如何查找阻止用户执行某项操作的安全权限

Dynamics crm 2011 如何查找阻止用户执行某项操作的安全权限,dynamics-crm-2011,dynamics-crm,Dynamics Crm 2011,Dynamics Crm,Dynamics CRM 2011内部部署 我有一个插件,可以在案例/事件表单的功能区中添加一些按钮 不同的用户具有不同的安全权限 所有用户都可以使用这些按钮 当一些用户按下按钮时,他们执行预期的操作 当其他用户按下按钮时,他们似乎什么也不做 除了权限之外,我认为其他一切对于用户来说都是一样的 如何找到导致问题的权限 (另外,如果权限阻止用户做某事,CRM不应该说些什么吗?我们没有收到错误。)有一个访问检查器,在这种情况下会有所帮助 在CRM中查询数据时,安全性的工作方式是,如果用户试图对其完全

Dynamics CRM 2011内部部署

我有一个插件,可以在案例/事件表单的功能区中添加一些按钮

不同的用户具有不同的安全权限

所有用户都可以使用这些按钮

当一些用户按下按钮时,他们执行预期的操作

当其他用户按下按钮时,他们似乎什么也不做

除了权限之外,我认为其他一切对于用户来说都是一样的

如何找到导致问题的权限

(另外,如果权限阻止用户做某事,CRM不应该说些什么吗?我们没有收到错误。)

有一个访问检查器,在这种情况下会有所帮助

在CRM中查询数据时,安全性的工作方式是,如果用户试图对其完全没有读取权限的实体执行选择,则会出现异常。但是,如果用户有权只查看自己拥有的记录,那么如果他们试图查询自己不拥有的记录,就会得到一个空的结果集。我猜这就是这里发生的事情,他们正在尝试查询具有读取权限的数据,但不是在组织级别,或者他们需要的任何确切级别。

来自DavidJennaway at

启用,跟踪日志将指示privilegeid和systemuserid-然后可以在privilege实体中查找privilegeid

请注意,跟踪日志将记录用户没有权限的所有实例-这包括CRM检查用户是否对某个实体有任何权限,以决定该实体是否应显示在Roshan Mehta位于

检查事件查看器。当插件无法在用户上下文下运行时,这通常会提供有关缺少权限的足够信息

或者,您可以在系统上下文下运行插件,在这种情况下不会发生此错误。为此,在插件中实例化服务对象时,将空值传递给CreateOrganizationService方法。

来自Imran I Abbasi

大卫是对的,没有比这更容易找到问题的根源的方法了。启用跟踪,然后对数据库中的特权实体使用跟踪文件中的privilegeId(GUID),以获取缺少特权的详细信息。为了简化您的任务,您可以使用TraceLogViewer来过滤日志文件并仅获取错误。以下是链接:

下面是在crm 2011中启用跟踪的步骤

以下是步骤

1->开始->运行->regedit.exe 2-HKEY_本地_机器>软件>Microsoft>MSCRM 3-添加新密钥

可追溯 示踪剂


德沃德,值=1

来自苏米特·巴塔纳格尔

您可以收集详细级别的跟踪,这将为您指明正确的方向。只需单击按钮,然后停止跟踪,即可复制问题


对于跟踪,您可以查看:

您的插件是如何控制功能区按钮的?因此没有单独的权限不足指示,只有一个空的结果集?在执行可能受权限限制的操作之前,我是否可以检查代码中的权限?@cja如果他们至少被授予了一个级别的访问权限,则不会,在查询实体时不会出现异常。他们将只获取他们有权访问的记录,如果不存在,他们将获取一个空集合。我可以执行“CheckPermissions(GetSomeData())”或其他操作来确定权限是否会影响结果吗?@cja您必须知道要查询的实体,但您可以执行检查以查看用户拥有的权限级别。这可能比它的价值更大。只需对您当前遇到问题的用户/角色执行具有权限的“二进制搜索”即可确定他们缺少哪些权限。您能否解释“只需对您当前遇到问题的用户/角色执行具有权限的“二进制搜索”即可确定他们缺少哪些权限。”?