【问题标题】:Blazor file accessBlazor 文件访问
【发布时间】:2021-05-25 08:30:40
【问题描述】:

AppDomain.CurrentDomain.BaseDirectory 为我提供了服务器端 blazor 中的 bin 目录。但是当我去客户端时,这个相同的调用返回“/”。只是一个根。如何在客户端应用程序的根目录中携带文件,然后在客户端中使用它?谢谢!

【问题讨论】:

  • 您必须了解 WASM 应用程序完全在客户端计算机上运行。它们被浏览器装箱/包含,即您无法简单地访问本地文件(这将是一个很大的安全风险)。您的问题的答案取决于您想要达到的目标,因此请提供更多详细信息。
  • 是的,谢谢,我明白它在客户端运行,并且允许完全访问本地资源会带来安全风险。但是,在我看来,这应该是用户的决定。毕竟,这是他们的资源。大多数提供价值的东西也会产生脆弱性。我们似乎很慢地接受这种变化。谢谢!
  • 不,整个趋势正朝着相反的方向发展。这些年来,应用程序实际上变得更加“容器化”。用户通常不想被关于授予资源访问权限的决定所困扰。他们通常会做出错误的决定(例如通过 WhatsApp 与 Facebook 共享数据),后来他们后悔了。
  • 我不是在谈论容器化。我说的是给用户更多的控制权……这就是趋势。浏览器允许越来越多,而不是越来越少。总有一天,浏览器将允许访问更多的操作系统。这是浏览器生存所必需的。因为,如果它没有,其他东西会。

标签: blazor blazor-webassembly blazor-client-side


【解决方案1】:

这似乎是不可能的。为了解决这个问题,我将创建一个在主机上运行的服务。

【讨论】:

    【解决方案2】:

    看看Assembly.GetManifestResourceStream

    Here's a stackoverflow post讨论如何使用。

    您使用返回资源的其他服务的解决方法适用于具有 Internet 访问权限的应用程序,但在离线情况下不是一个选项。 就我而言,我只需要一个字体文件并将该文件嵌入到程序集中就可以了。

    【讨论】:

    • 在我的场景中,我使用 WebDriver 来自动执行浏览器任务。所以上网是必要的。感谢您的贡献。我相信这对将来遇到此问题的人会有所帮助,为此,我们感谢您。
    猜你喜欢
    • 2020-08-16
    • 1970-01-01
    • 2020-12-30
    • 2022-10-09
    • 2023-01-05
    • 2021-07-17
    • 2019-11-17
    • 2020-06-23
    • 1970-01-01
    相关资源
    最近更新 更多