我有一个应用程序将其大部分文件保存在一个目录中,并且我需要该目录中的所有内容都可以被任何用户读取和写入,无论谁在运行创建它们的程序。
我正在使用 Indigo Rose 的 SetupFactory 安装应用程序,并且在安装后使用他们的权限工具:
File.SetPermissions(SessionVar.Expand("%AppFolder%"),
SID_EVERYBODY, SET_ACCESS, ALL_PERMISSIONS, SUB_CONTAINERS_AND_OBJECTS_INHERIT);
在大多数情况下,这是可行的。该目录是可访问的,并且它的所有内容都是可访问的,除了一件事。
我有一个构造配置文件的实用程序。当它以管理员身份运行时,其他用户无法访问它创建的文件。它的属性只允许访问“SYSTEM”、“Admin”和“Administrators”。我使用记事本创建的文件,从 Windows 资源管理器,通过命令行上的重定向等,当以管理员身份运行时,允许访问“每个人”和“经过身份验证的用户”,因为他们应该,因为这些是目录提供的访问权限,并且该目录已应用到:“此文件夹、子文件夹和文件”。
问题是为什么这个应用程序创建的这个文件没有像它应该的那样从目录继承权限?
该应用程序没有什么奇怪的。这是一个简单的 C# 应用程序,它在内存中构造一个字符串,然后将其写入文件:
FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
我不明白它怎么可能更简单。但可能出了什么问题?