Dynamics CRM 2011内部部署。
我有一个插件,可以在案例/事件表单上为功能区添加一些按钮。
不同的用户拥有不同的安全权限。
为所有用户启用了按钮。
当某些用户按下按钮时,他们会执行预期的操作。
当其他用户按下按钮时,他们似乎什么也没做。
除了权限之外,我认为用户的其他一切都是一样的。
如何找到导致问题的权限?
(另外,如果权限阻止用户做某事,CRM不应该说些什么吗?我们不会收到错误。)
答案 0 :(得分:0)
Xrm Tool Box有一个访问检查程序,可以帮助解决这种情况。
在查询数据时,安全性在CRM中的工作方式是,如果用户尝试对他们根本没有读取权限的实体执行选择,则会出现异常。但是,如果用户有权仅查看他们拥有的记录,那么如果他们试图查询他们不拥有的记录,他们将获得一个空的结果集。我猜这是正在发生的事情,是他们试图查询具有读取权限的数据,但不是在组织级别,或者他们需要的确切级别。
答案 1 :(得分:0)
来自Suumit Bhatanagar https://community.dynamics.com/crm/f/117/p/113149/228873.aspx?WT.mc_id=ForumPost
您可以收集详细的痕迹,指引您朝着正确的方向前进。只需单击按钮即可重现问题,然后停止跟踪。
对于痕迹,您可以查看:http://support.microsoft.com/kb/907490
答案 2 :(得分:-1)
启用tracing,跟踪日志将指示privilegeid和systemuserid - 然后您可以在权限实体中查找权限。
请注意,跟踪日志将记录用户没有权限的所有实例 - 这包括CRM检查用户是否对实体有任何权限以确定是否应在UI中显示实体的情况< / p>
答案 3 :(得分:-1)
检查事件查看器。当插件无法在用户上下文中运行时,这通常会提供有关缺少权限的足够信息。
或者,您可以在SYSTEM上下文下运行插件,在这种情况下不会发生此错误。为此,在实例化插件中的服务对象时,将null值传递给CreateOrganizationService方法。
答案 4 :(得分:-1)
大卫是对的,没有任何更简单的方法可以找到问题的根源。启用跟踪,然后使用来自跟踪文件的privilegeId(GUID)对数据库中的Privilege实体来获取缺少权限的详细信息。为简化您的任务,您可以使用TraceLogViewer过滤日志文件并仅获取错误。这是链接:Trace Log Viewer
以下是在crm 2011中启用跟踪的步骤
这是步骤
1- - &gt;开始 - &gt;跑 - &gt; REGEDIT.EXE 2- HKEY_LOCAL_MACHINE&gt;软件&gt;微软&gt; MSCRM 3-添加新密钥
TraceEnabled TraceRefresh
DWORD,value = 1
答案 5 :(得分:-1)
来自Scott Durow的https://community.dynamics.com/crm/f/117/p/113149/228873.aspx?WT.mc_id=ForumPost
如果您遇到安全问题,那么您将始终从CRM获得例外。除非你的代码正在捕获异常(或者没有用Javascript处理它),否则我怀疑其他东西可能会继续发生。
按钮有什么作用?你能描述一下这个场景吗?