【问题标题】:Dynamics 365 Client Side Javascript web resources not downloading for non system administrator users非系统管理员用户无法下载 Dynamics 365 客户端 Javascript Web 资源
【发布时间】:2018-06-20 16:36:25
【问题描述】:

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

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

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

【问题讨论】:

  • 该网络资源是否已添加到表单或功能区中?您到底在哪里测试功能?根本就没有什么叫做保护 js web 资源只针对某些用户角色。
  • 作为 JavaScript 函数库添加到表单中,并在表单属性中为 OnSave 和 OnLoad 事件处理程序进行了配置。
  • 你有2种不同的以安全角色区分的形式吗?可能js仅在系统管理表单中注册..检查它
  • 未启用任何表单安全角色。不同的账户关系需要不同的属性和部分,因此创建了多个表单并根据属性值切换 OnLoad。

标签: javascript dynamics-crm microsoft-dynamics webresource


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢您的回复。我理解你的观点,但在我的场景中,多种形式不限于任何安全角色。我只是使用表单切换器根据帐户记录的属性关系显示不同的布局。
  • 我认为同样的 Arun,但它在自定义 > Web 资源下的安全角色中可用
  • @BrianFrick 我知道,我的意思是我们不能规范安全角色来加载或不加载任何特定的 js 文件。虽然 CSR Manager 角色应该拥有网络资源实体的所有权限..
【解决方案2】:

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

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

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

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

    • 这是我的回答,但您确认是否定的。现在同意了。尊重帮助您的社区答案,而不是欺骗答案。阅读:stackoverflow.com/help/someone-answers。欢迎使用 StackOverflow。
    • 不确定你所说的欺骗答案是什么意思。我同意 100% 你问我关于安全角色的问题。我没有启用表单安全角色,因此做出了相应的回答。我偶然检查了它们并意识到它们已启用并且仅用于系统管理员角色。请我试图表现出没有听取您的建议的尴尬“吸取的教训不要假设,总是检查和仔细检查,特别是在团队环境中。”谢谢。
    • 我没有任何问题。但 SO 不是一个论坛,它是一个问答网站。这就是它的工作原理。阅读所有帮助页面,包括我在上面评论中发布的链接。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多