以编程方式创建的文件并不总是继承父文件夹的权限

时间:2012-03-06 20:05:00

标签: c# file-io windows-server-2008

(这可能更适合ServerFault - 如果是这样,请迁移它!)

我们最近将服务器从Windows 2003升级到Windows 2008.我们现在收到的报告是,动态生成的某些PDF文件正在提供“访问被拒绝”消息。我已经验证该文件夹对正在使用的用户组具有“完全控制”,但似乎创建了间歇性文件而没有继承父权限。

例如,父文件夹名为Paperwork。 “用户”组设置为完全控制该目录中的所有文件和子文件夹。这有效率的95%。但是,偶尔会创建一个文件,当我查看该文件的安全权限 时,“用户”组会具有完全控制权限。< / p>

是否需要针对Windows Server 2008更改某些程序性内容,或者这是服务器本身的配置问题?

1 个答案:

答案 0 :(得分:1)

看看这个

enter image description here

试试这个:

 private DirectorySecurity GetDirectorySecurity(string owner)
    {
        const string LOG_SOURCE = "GetDirectorySecurity";
        DirectorySecurity ds = new DirectorySecurity();

        System.Security.Principal.NTAccount ownerAccount =
            new System.Security.Principal.NTAccount(owner);

        ds.SetOwner(ownerAccount);

        ds.AddAccessRule(
            new FileSystemAccessRule(owner,
            FileSystemRights.FullControl,
            InheritanceFlags.ObjectInherit, 
            PropagationFlags.InheritOnly,
            AccessControlType.Allow));

        //AdminUsers is a List<string> that contains a list from configuration
        //  That represents the admins who should be allowed
        foreach (string adminUser in AdminUsers)
        {
            ds.AddAccessRule(
                new FileSystemAccessRule(adminUser,
                FileSystemRights.FullControl,
                InheritanceFlags.ObjectInherit,
                PropagationFlags.InheritOnly,
                AccessControlType.Allow));
        }
        return ds;
    }

参考: File permissions do not inherit directory permissions