如何在Dynamics CRM 2016 v8.2中使用javascript在运行时检查用户权限?

如何在Dynamics CRM 2016 v8.2中使用javascript在运行时检查用户权限?,javascript,dynamics-crm,dynamics-crm-2016,Javascript,Dynamics Crm,Dynamics Crm 2016,我需要在运行时检查用户权限。 场景:User1创建了记录,并为User1记录分配给user2,现在将为只读。因此,user1没有访问该特定记录的权限。因此,我们可以检查user1的运行时权限吗?我知道这是的后续问题,您需要一个解决方法来确定表单模式-当用户的读取权限超过用户级别,但在用户级别上具有编辑权限时,因为CRM 2016错误无法将表单类型分类为只读和更新 您可以选择这样的选项,如在表单中选择一个字段来检索该特定字段的权限,以便进行canRead、canUpdate访问级别并决定要执行的操

我需要在运行时检查用户权限。

场景:User1创建了记录,并为User1记录分配给user2,现在将为只读。因此,user1没有访问该特定记录的权限。因此,我们可以检查user1的运行时权限吗?

我知道这是的后续问题,您需要一个解决方法来确定表单模式-当用户的读取权限超过用户级别,但在用户级别上具有编辑权限时,因为CRM 2016错误无法将表单类型分类为只读和更新

您可以选择这样的选项,如在表单中选择一个字段来检索该特定字段的权限,以便进行canRead、canUpdate访问级别并决定要执行的操作

Xrm.Page.getAttribute("field_name").getUserPrivilege();
我认为这是一个bug,因为从CRM 2011到CRM 2015,它一直在按预期工作。我们使用的解决方案是,如果表单类型为2,我们正在制作另一个JavaScript Ajax调用来检查记录上的用户权限,如果它被读取,那么我们认为表单是只读的,如果是写入,则表单处于更新模式。 当然,此解决方案会增加表单加载的性能成本,但我们发现它适合我们的情况

另一个解决方法,我想我在StackOverflow中看到过,就是在表单上查找一个字段,您知道它在写入模式下应该是可编辑的,然后检查它是可编辑的还是只读的,但我们没有尝试这个解决方案


为用户创建“只读”记录通常由安全角色完成。您是否希望检索特定的特权或权限?你可能想复习。阿伦-非常感谢。你节省了我的时间。Xrm.Page.getAttribute(“字段名称”).getUserPrivilege();正在工作,但在所有情况下(如canCreate、canUpdate和canRead)都会返回true。所以我没有用这个。此Xrm.Page.getControl(“fieldname”).getDisabled();对我来说很好。@amarbisht很高兴你解决了这个问题。你能通过投票/接受答案来结束另一个问题吗?当然。我会的