【发布时间】:2011-09-04 04:03:29
【问题描述】:
我的问题是,我想创建一个新文件夹并使用户无法(或相当困难)更改其名称或删除它。问题是,用户必须能够访问该文件夹中包含的文件并以他喜欢的任何方式更改它们。使用我在网上找到的示例,我得到的只是无法更改文件夹内的文件,而不是文件夹本身。
提前致谢 ;)
【问题讨论】:
标签: c# permissions directory readonly
我的问题是,我想创建一个新文件夹并使用户无法(或相当困难)更改其名称或删除它。问题是,用户必须能够访问该文件夹中包含的文件并以他喜欢的任何方式更改它们。使用我在网上找到的示例,我得到的只是无法更改文件夹内的文件,而不是文件夹本身。
提前致谢 ;)
【问题讨论】:
标签: c# permissions directory readonly
这可能会有所帮助。
http://technet.microsoft.com/en-us/library/cc732880.aspx
您似乎希望允许“创建文件/写入数据”权限,但不允许“控制”父文件夹。
您应该能够设置 ACL 来执行此操作。给他们“列出文件夹内容”权限,然后有选择地给他们额外的扩展权限,而不给他们修改属性的权限。
服务回答是个坏主意。我可能会工作,但不是最好的方法。 Windows 目录和文件夹安全性的关键是文件夹的“所有者”。作为管理员,您始终可以拥有文件夹或文件的所有权。但是,如果文件有不同的所有者并且该所有者已授予您权利,那么在您进入并取得所有权之前,您将不会拥有任何其他权利。
您要做的是在机器上创建一个特殊帐户(通常称为服务帐户),这是程序运行时的身份。此帐户具有管理员权限,并且是其创建的任何文件的所有者。然后,它可以允许它想授予用户对其创建的文件和文件夹的任何访问权限。
如果管理员愿意,他们将始终能够取得所有权,但大多数用户甚至不知道如何做到这一点。
【讨论】:
只要该文件夹是由用户帐户创建的(假设您是通过应用程序以编程方式创建该文件夹),用户就可以编辑该文件夹。保护该文件夹不被篡改的最佳方法是编写一个非常小的 Windows 服务,使该文件夹始终处于打开状态,从而防止删除/重命名。
【讨论】: