【问题标题】:Making a directory NAME read-only in C#在 C# 中将目录 NAME 设为只读
【发布时间】:2011-09-04 04:03:29
【问题描述】:

我的问题是,我想创建一个新文件夹并使用户无法(或相当困难)更改其名称或删除它。问题是,用户必须能够访问该文件夹中包含的文件并以他喜欢的任何方式更改它们。使用我在网上找到的示例,我得到的只是无法更改文件夹内的文件,而不是文件夹本身。

提前致谢 ;)

【问题讨论】:

    标签: c# permissions directory readonly


    【解决方案1】:

    这可能会有所帮助。

    http://technet.microsoft.com/en-us/library/cc732880.aspx

    您似乎希望允许“创建文件/写入数据”权限,但不允许“控制”父文件夹。

    您应该能够设置 ACL 来执行此操作。给他们“列出文件夹内容”权限,然后有选择地给他们额外的扩展权限,而不给他们修改属性的权限。


    服务回答是个坏主意。我可能会工作,但不是最好的方法。 Windows 目录和文件夹安全性的关键是文件夹的“所有者”。作为管理员,您始终可以拥有文件夹或文件的所有权。但是,如果文件有不同的所有者并且该所有者已授予您权利,那么在您进入并取得所有权之前,您将不会拥有任何其他权利。

    您要做的是在机器上创建一个特殊帐户(通常称为服务帐户),这是程序运行时的身份。此帐户具有管理员权限,并且是其创建的任何文件的所有者。然后,它可以允许它想授予用户对其创建的文件和文件夹的任何访问权限。

    如果管理员愿意,他们将始终能够取得所有权,但大多数用户甚至不知道如何做到这一点。

    【讨论】:

    • 用户是否仍然可以单击“允许”窗口(如果他/她是管理员)?我真的认为你的答案是最完整的,但我有点在最后期限内,所以我想我会选择服务。谢谢!
    • @t0xe - 查看其他 cmets。
    • 所以在这种情况下,允许窗口甚至不会出现,而用户只会被“阻止”,这正是我需要的!我确实想过使用一个额外的帐户,但我不知道如何创建一个帐户,没有在登录窗口中显示它并为其设置管理员权限.. 研究一下我去!如果我有声望,我会 +1 你的回答;)非常感谢!
    • 太好了,很高兴为您提供帮助。接受答案也表明它很有帮助。
    【解决方案2】:

    只要该文件夹是由用户帐户创建的(假设您是通过应用程序以编程方式创建该文件夹),用户就可以编辑该文件夹。保护该文件夹不被篡改的最佳方法是编写一个非常小的 Windows 服务,使该文件夹始终处于打开状态,从而防止删除/重命名。

    【讨论】:

    • 非常感谢,我真的很喜欢黑客类型的解决方案,它给了我想要的东西 ;)
    猜你喜欢
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多