【问题标题】:No exception thrown when attempting to delete folder on UNC path with restricted permissions尝试删除具有受限权限的 UNC 路径上的文件夹时未引发异常
【发布时间】:2011-06-25 00:02:53
【问题描述】:

在 C# 中我执行了两个测试:

  1. 我在本地驱动器上创建了一个没有任何访问权限的目录。尝试以编程方式删除目录会引发 IOException。我本来预计会出现 UnauthorizedAccessException,但我确实收到了 IOException 并显示“访问被拒绝”的消息。

  2. 重复相同的测试,但这次在网络 UNC 路径上,我在可用的 UNC 共享上创建了一个目录,没有任何访问权限。当我以编程方式删除文件夹时,它会删除而没有任何错误或异常。这是相同的测试,相同的用户,并且用户(我自己)是目录的创建者,也是删除所有权限的用户。

在 Windows 资源管理器中手动测试时也会发生同样的情况。为什么在 UNC 网络共享上允许删除文件夹,而在本地驱动器上不允许删除?网络是一个工作组(不是域)。

尝试在网络共享的受限文件夹中添加子目录将引发异常并且不会成功。我不明白为什么在删除所有权限后允许删除。

【问题讨论】:

  • 这可能也是您想在 SuperUser 上问的问题,因为它更像是一个 Windows 安全问题而不是编程问题。

标签: c# windows permissions


【解决方案1】:

当您创建目录时,新创建的目录(在大多数情况下)从父文件夹继承其访问权限。

所以当说“没有任何访问权限”时,你是不正确的。您只是从父目录获得访问权限。

【讨论】:

  • 通常这是正确的。但是,在上述测试用例中,我明确删除了所有继承的权限。因此,创建的文件夹实际上没有任何权限。
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多