非系统管理员用户无法下载 Dynamics 365 客户端 Javascript Web 资源
Dynamics 365 Client Side Javascript web resources not downloading for non system administrator users
我开发了一个客户端 JavaScript 函数,并使用推荐的步骤将它们作为 Web 资源添加到 Dynamics 365 客户服务解决方案中。
当我以系统定制员和系统管理员的角色登录到实例时,这些功能已经过测试并按要求运行。但是,如果以没有这两个角色的用户身份登录(如 CSR 经理),则 JavaScript 功能没有响应。在对 IE11、Chrome 和 Firefox 中的客户端开发人员工具进行进一步调查后,我已经验证 JavaScript 实际上没有为这些用户下载到客户端浏览器。
如果我将系统管理员角色授予用户,功能将正常运行,并且我可以在浏览器中使用客户端调试器。一旦我取消角色并重新加载浏览器,我设置的调试点就不会暂停,并且不会下载 JavaScript 网络资源。
我不确定发生了什么,因为没有社区论坛或 Microsoft 文档文章提到保护 Web 资源或允许非管理员用户与管理员用户查看的任何其他要求。
CRM 网络资源 (JS) 不能 rendered/controlled 仅用于某些安全角色。它对所有人开放。
但是当您针对不同的安全角色使用不同的表单时,可能会在该特定表单中缺少已注册的 js 库和函数。
您无法找到任何类似的东西 documentation/forum,因为这可能是一些 admin/developer 错误。
如果您为 Sys.Admin 或 CSR 角色启用多个表单,那么表单切换器将出现在记录中,您可以测试这两种行为。
我在这里看到几个关于安全角色和表单的答案。如果您只在一个表单上使用 jScript,那么它对其他表单不起作用。因此,您需要 link 该 JS(无论是 Web 资源还是您输入文本编辑器的代码)到每个您希望 JSCRIPT 运行 的表单(在表单属性中)。听起来您已经 运行ning 了,而且它对您和其他具有 SysAdmin 角色的用户有效。您是否在所有表单中尝试过此操作?
要检查的第二件事是确切地您的 JScript 代码在做什么。它只关注一个实体(您要将 JS 注入到的表单的实体)吗?是更新、删除还是追加记录?
如上所述,JScript 和 Web 资源不能被安全性锁定(据我所知),但如果用户没有适当的权限写入实体,您可能会看到此行为。
更新:对不起,我撒谎了。 Web 资源可通过安全角色进行控制。 它位于自定义选项卡中,一直位于列表底部(但位于 Misc.特权)。您可以在此实体上设置创建、读取、写入、删除权限。
您可能想要检查非系统管理员拥有的安全角色至少对 Web 资源实体具有读取权限。
感谢您的所有回复。毕竟这个问题是形式 "Enable Security Roles" 相关的。
我不确定在默认情况下,自定义表单的安全性是否仅为系统管理员和系统定制员角色启用,或者我的团队成员之一限制了对这两个角色的访问。
但是在查看这些并为其他角色启用表单后,JS 脚本开始为非管理员用户下载。
经验教训不要假设,总是检查并仔细检查,尤其是在团队环境中。
我开发了一个客户端 JavaScript 函数,并使用推荐的步骤将它们作为 Web 资源添加到 Dynamics 365 客户服务解决方案中。 当我以系统定制员和系统管理员的角色登录到实例时,这些功能已经过测试并按要求运行。但是,如果以没有这两个角色的用户身份登录(如 CSR 经理),则 JavaScript 功能没有响应。在对 IE11、Chrome 和 Firefox 中的客户端开发人员工具进行进一步调查后,我已经验证 JavaScript 实际上没有为这些用户下载到客户端浏览器。
如果我将系统管理员角色授予用户,功能将正常运行,并且我可以在浏览器中使用客户端调试器。一旦我取消角色并重新加载浏览器,我设置的调试点就不会暂停,并且不会下载 JavaScript 网络资源。
我不确定发生了什么,因为没有社区论坛或 Microsoft 文档文章提到保护 Web 资源或允许非管理员用户与管理员用户查看的任何其他要求。
CRM 网络资源 (JS) 不能 rendered/controlled 仅用于某些安全角色。它对所有人开放。
但是当您针对不同的安全角色使用不同的表单时,可能会在该特定表单中缺少已注册的 js 库和函数。
您无法找到任何类似的东西 documentation/forum,因为这可能是一些 admin/developer 错误。
如果您为 Sys.Admin 或 CSR 角色启用多个表单,那么表单切换器将出现在记录中,您可以测试这两种行为。
我在这里看到几个关于安全角色和表单的答案。如果您只在一个表单上使用 jScript,那么它对其他表单不起作用。因此,您需要 link 该 JS(无论是 Web 资源还是您输入文本编辑器的代码)到每个您希望 JSCRIPT 运行 的表单(在表单属性中)。听起来您已经 运行ning 了,而且它对您和其他具有 SysAdmin 角色的用户有效。您是否在所有表单中尝试过此操作?
要检查的第二件事是确切地您的 JScript 代码在做什么。它只关注一个实体(您要将 JS 注入到的表单的实体)吗?是更新、删除还是追加记录?
如上所述,JScript 和 Web 资源不能被安全性锁定(据我所知),但如果用户没有适当的权限写入实体,您可能会看到此行为。
更新:对不起,我撒谎了。 Web 资源可通过安全角色进行控制。 它位于自定义选项卡中,一直位于列表底部(但位于 Misc.特权)。您可以在此实体上设置创建、读取、写入、删除权限。
您可能想要检查非系统管理员拥有的安全角色至少对 Web 资源实体具有读取权限。
感谢您的所有回复。毕竟这个问题是形式 "Enable Security Roles" 相关的。
我不确定在默认情况下,自定义表单的安全性是否仅为系统管理员和系统定制员角色启用,或者我的团队成员之一限制了对这两个角色的访问。
但是在查看这些并为其他角色启用表单后,JS 脚本开始为非管理员用户下载。
经验教训不要假设,总是检查并仔细检查,尤其是在团队环境中。