【问题标题】:How to access local folders when code is runned from a network share从网络共享运行代码时如何访问本地文件夹
【发布时间】:2009-05-04 15:40:08
【问题描述】:

我正在从网络共享运行一个应用程序,然后该应用程序尝试验证路径“C:\temp”是否存在并返回真或假。

如果代码在本地运行,则没有问题。如果它是从网络共享运行的,即使该文件夹在本地存在,我也会得到错误的结果。

代码是框架 2.0 上的 C#

谢谢

【问题讨论】:

    标签: c# networking share


    【解决方案1】:

    您需要在提升的权限下运行才能看到这一点。它是Code Access Security 模型的一部分。

    我建议使用Environment.GetFolderPath 返回的应用程序数据文件夹,而不是硬编码路径。

    【讨论】:

    • 我通常不会赞成提出与 OP 想要的相反的解决方案的答案,但我已经看到这个问题发生了很多次,我认为开发人员真正开始使用用户特定的存储是很重要的路径。
    • @overslacked:嗯,我告诉他如何到达那里(在提升的 privs 下运行)以及这个问题的原因(CAS)......我只是不认为这是“最好的”在这种情况下可以选择,因此我后来提出了建议。
    【解决方案2】:

    这与 .NET 框架的安全策略设置有关。默认情况下,从 Intranet 区域(UNC 路径分配到)运行的代码不完全受信任,从而限制了您的某些代码成功。

    如果需要,您可以使用配置向导更改这些设置。打开 Visual Studio 命令提示符并运行“Configwizards.exe”。

    有关 CAS 配置的信息,另请参阅 this link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      相关资源
      最近更新 更多