【问题标题】:Unable to update file attributes: Access denied无法更新文件属性:访问被拒绝
【发布时间】:2012-02-04 22:58:36
【问题描述】:

以下代码以管理员身份从本地硬盘驱动器运行,使用 .Net Framework 2.0,有时会在第二行引发 UnauthorizedAccessException

IO.File.SetAttributes(File, IO.FileAttributes.Normal)
IO.File.SetAttributes(File, IO.FileAttributes.Archive)

这发生在网络驱动器上。有问题的文件有奇怪的权限(见帖子结尾),虽然读写工作完美。

更糟糕的是,即使是从资源管理器,尝试更改权限也会失败,首先要求管理员权限,然后还是失败:

有什么想法吗?我完全不知所措。


这是文件权限的截图: 这个有效:

这个没有:

【问题讨论】:

    标签: .net security permissions io


    【解决方案1】:

    我根本不懂法语(那是正确的语言吗?)但看起来第一个有效,因为您是服务器端的用户(Linux 用户)。在网络驱动器上工作时,您必须拥有服务器上的权限才能更改文件属性。否则,必须在服务器端进行更改。

    编辑:根据服务器设置和文件类型,某些服务器还可以在保存到网络驱动器时更改文件权限。这些更改可能会被锁定,只有拥有服务器凭据的人才能修改它们,然后代码会因该异常而失败。

    Edit2:也有可能通过索引将其绑定在服务器端,几分钟后,您将获得访问权。

    【讨论】:

    • 那是法语,但除了“拒绝访问”之外什么也没说。为什么文件可以写入,但属性不能更改?
    • @Clement 也许该文件以只读方式访问以用于索引编制、服务器上的病毒监控,或者可能是服务器端更改了属性并通过这样做,更改了权限,即使您最初保存了将他们与您的凭据一起归档。在我工作的本地网络上,我看到某些文件类型会发生这种情况。
    • 服务器也可以更改文件的所有权并防止属性修改。
    • @Clement 您是否有权访问网络或服务器端或其他人?也许他们可以将您添加到允许您访问这些文件的用户组。
    • 另外,当从资源管理器请求管理员权限时,它可能是指网络侧的那些,你可能没有这些
    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    相关资源
    最近更新 更多