Dynamics CRM javascript获得字段级安全性



在JS脚本中,使用Web Api,我正在获取具有字段级别安全性的特定实体字段的值。然后我想在 Web 资源中显示此值。如何检测当前用户是否有权读取该特定字段?

您可以从v9开始使用getUserPrivilege(编辑:Guido指出此方法在以前的CRM版本中也可用(。

getUserPrivilege - 返回一个对象,该对象具有三个布尔属性,这些属性对应于权限,指示用户是否可以创建、读取或更新属性的数据值。此函数适用于字段级别安全性修改用户对特定属性的权限

formContext.getAttribute(arg).getUserPrivilege()

这将返回canReadcanUpdatecanCreate布尔值,因此您可以决定要做什么。

参考

仅当用户通过字段安全性配置文件具有适当的读取访问权限时,才会返回该值。因此,您无需显式检查用户是否有权读取该字段。

从字段级安全性到控制访问:

字段级别安全性的范围是组织范围的,适用于 所有数据访问请求,包括以下内容:

  • 来自客户端应用程序(如 Web 浏览器、移动客户端或 Dynamics 365 for Outlook(Microsoft中的数据访问请求。

  • 使用 Dynamics 365 客户互动 Web 服务的 Web 服务调用(用于插件、自定义工作流活动和自定义 代码(

  • 报告(使用过滤视图(

好吧,问题的原因非常愚蠢:缓存问题。第一次,我以管理员身份连接到CRM,然后我断开连接并以较少的权限登录,但由于缓存的"强大",我仍然能够在Web资源中查看该字段。在专用窗口中查看表单时,字段级别安全性在 Web 资源中工作。但奇怪的是,在正常窗口中,字段级别安全性以表单形式工作(字段值不可见(,但在 Web 资源中不起作用。

最新更新