0

我开发了一个客户端 JavaScript 函数,并使用推荐的步骤将它们作为 Web 资源添加到 Dynamics 365 客户服务解决方案中。当我使用角色作为系统定制员和系统管理员登录到实例时,这些功能已经过测试并按要求运行。但是,如果登录是作为没有这两个角色的用户(如 CSR 经理),则 JavaScript 函数没有响应。在对 IE11、Chrome 和 Firefox 中的客户端开发工具进行进一步调查后,我已经验证 JavaScript 实际上并没有为这些用户下载到客户端浏览器。

如果我将系统管理员角色授予用户,则功能可以正常工作,我可以在浏览器中使用客户端调试器。一旦我拿走角色并重新加载浏览器,我设置的调试点就不会暂停,并且不会下载 JavaScript Web 资源。

我不确定发生了什么,因为没有社区论坛或 Microsoft 文档文章提到任何其他保护 Web 资源或允许非管理员用户查看与管理员用户的要求。

4

3 回答 3

0

CRM Web 资源 (JS) 不能仅针对某些安全角色呈现/控制。它对所有人开放。

但是,当您为不同的安全角色使用不同的表单时,则可能会在该特定表单中丢失已注册的 js 库和函数。

您在任何文档/论坛中都找不到类似的内容,因为这可能是一些管理员/开发人员错误。

如果您为 Sys.Admin 或 CSR 角色启用多个表单,则表单切换器将出现在记录中,您可以测试这两种行为。

于 2018-06-22T02:49:58.843 回答
0

我在这里看到几个关于安全角色和表单的答案。如果您的 jScript 仅在一个表单上,它将不适用于其他表单。因此,您需要将该 JS(无论是 Web 资源还是您输入到文本编辑器中的代码)链接到您希望 JSCRIPT 在其上运行的每个表单(在表单属性中)。听起来您正在运行它,并且它适用于您和 SysAdmin 角色中的其他用户。您是否在所有表格中都尝试过这个?

要检查的第二件事是您的 JScript 代码到底在做什么。它是否只关注一个实体(您将 JS 注入到的表单的实体)?它是更新、删除还是向记录追加内容?

如上所述,JScript 和 Web 资源不能被安全性锁定(据我所知),但如果用户没有适当的权限来写入实体,您可能会看到这种行为。

更新:对不起,我撒谎了。 Web 资源可通过安全角色进行控制。 它位于“自定义”选项卡中,一直位于列表底部(但位于“杂项隐私”上方)。您可以在此实体上设置 CREATE、READ、WRITE、DELETE 权限。

您可能想要检查非系统管理员拥有的安全角色至少在 Web 资源实体上具有 READ。

于 2018-06-22T20:25:17.237 回答
0

感谢您的所有回复。毕竟,问题是与“启用安全角色”相关的。

我不确定自定义表单上的默认设置是否仅对系统管理员和系统定制员角色启用安全性,或者我的团队成员之一限制对这两个角色的访问。

但是在查看这些并为其他角色启用表单时,JS 脚本开始为非管理员用户下载。

吸取的教训不要假设,总是检查和仔细检查,尤其是在团队环境中。

于 2018-06-26T08:13:12.750 回答