如何以编程方式更改文件的安全属性,以便任何用户都可以删除该文件

我有一个用C#编写的服务器,它使用了模拟。

我想知道如何更改文件的安全属性,以便任何用户都可以删除它。

我的服务器模拟用户,然后创建一个临时文件。 稍后我需要删除该文件,但此时,我不再冒充创建该文件的用户,并且在尝试删除该文件时会生成exception。 我的假设是,在我创建文件时,我应该能够更改安全属性以允许任何用户删除该文件。

我怎样才能做到这一点(C#首选,但p / invoke也可以)。

我目前正在使用.NET 1.1,因此可以在1.1中实现一种方法。

听起来您希望使用System.IO.File.SetAccessControl方法添加ACL,使内置的“Everyone”组能够删除该文件。 MSDN文档有一个很好的样本 ,可以在文件中添加和删除ACL记录。

不要让每个人都删除文件,为什么不为只需要删除文件的人添加条目。 根据您的post,这可能是您的用户帐户和原始流程。 允许字面上每个人都删除该文件,以防止出现安全问题。

public static void AllowIdentityToDelete(FileInfo file, string identity) { var rule = new FileSystemAccessRule( identity, FileSystemRights.Delete | FileSystemRights.DeleteSubdirectoriesAndFiles, AccessControlType.Allow); var acls = file.GetAccessControl(); acls.AddAccessRule(rule); file.SetAccessControl(acls); } 

您需要为相关用户传递正确的标识。