从Dynamics 365访问本地文件,并且不允许本地资源

时间:2019-04-23 22:15:51

标签: javascript dynamics-crm

在CRM中,我们有一个项目列表,并且在网络驱动器上有与这些项目相关的文件。不想设置我们过去遇到的Sharepoint到期问题。

无论如何,我们要在每个项目记录中添加该项目文件的网络URI,以便用户可以单击CRM记录中的链接并直接转到该记录。类似于X:\Projects\contoso

请通过以下建议实现此目的:

http://blog.zealots.solar/?p=54

基本上包括制作一个HTML页面并将其作为Web资源插入表单中,这使其成为iframe。

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <a id="doclink" style="border: 0px currentColor;" href="http://www.example.com" target="_blank">
      <img style="border: 0px currentColor;" src="stsr_folders_icon.png">
    </a>
    <script language="javascript" type="text/javascript">
      var linkval = window.parent.Xrm.Page.data.entity.attributes.get("stsr_documents").getValue();
      var a = document.getElementById('doclink');
      a.href = "file:"+linkval;
    </script>  
  </body>
</html>

当然要更新window.parent.Xrm.Page.data.entity.attributes.get("stsr_documents")<img src=。它从stsr_documents字段中获取URI值,并将其附加到图像中。

它确实完成了添加并生成正确的file:///X:/Projects/contoso。您可以在浏览器中输入该URL,它将打开目录。

但是,仅单击它会导致以下错误:

  • Not allowed to load local resource: file:///X:/Projects/contoso在 Chrome 73.0
  • Edge 42中没有错误(URI为file:X:/Projects/contoso),但什么也不做
  • IE 11与Edge相同:相同的URI,没有错误,什么也没发生
  • Firefox 66:相同...没有错误,没有任何反应; URI为file:///X:/Projects/contoso

要明确:我不是在问错误为什么会出现或为什么不起作用。从大量关于它的安全性问题中可以很明显地看出来。几乎所有现代浏览器都不会加载本地资源。我知道了。

我想知道的是,有什么解决方法。有些人建议设置一个Web服务器,但是由于我无法访问CRM Web服务器,因此我不确定该如何工作。

还有什么其他解决方案?

1 个答案:

答案 0 :(得分:1)

使用UNC资源与诸如Dynamics 365之类的跨浏览器Web平台的性质相反。除了Windows用户的笨拙体验(显然仍然无法正常工作)之外,请考虑Mac和移动用户在使用它们时的体验。尝试在他们的浏览器中打开UNC路径。

SharePoint将是显而易见的选择,但是如果您不愿使用它,则可能要考虑在托管文件的服务器上实现WebDAV

这些天,我怀疑许多人会认为WebDAV是D365文件集成的“现代”或流行解决方案。

在SharePoint之外,Azure Blob storage是可行且流行的基于云的选项。