我一直在测试我的应用程序,看看当由非管理用户身份运行,以及它如何工作的,我已经发现了与文件处理的问题。 试图覆盖文件时,我得到一个UnauthorizedAccessException,如果该文件是由智优和用户创建的。
当写出来的文件我首先创建的文件作为.tmp文件,然后使用File.Copy覆盖原来的。 .tmp文件获取创建,但File.Copy失败。 我的文件写入到一个公共目录(“C:\ Documents和Settings \所有用户\应用数据”在XP)。
我能做些什么,使所有用户都能获得应用程序文件的完全控制权?
我发现这一点:
System.Security.AccessControl.DirectorySecurity sec =
System.IO.Directory.GetAccessControl ( directory );
FileSystemAccessRule accRule = new FileSystemAccessRule ( Globals.userIdentity,
FileSystemRights.FullControl, AccessControlType.Allow );
sec.AddAccessRule ( accRule );
会做以上所有文件都位于解决这个问题的目录? 或者将我必须做些什么,以每个文件? 如果是的话那是什么东西?
编辑:
非管理员用户无法修改由管理员用户创建的文件。 不是很好。 我需要的所有文件,所有用户可编辑。 是不是有某种权限,可以在文件最初创建,将授予该设置?