示例#1
0
        static void AdjustNtPermissions(string rootFolder, string NTcredential, bool Add)
        {
            NTGroup g1 = new NTGroup();

            if (Add)
            {
                Console.Write("Adding permission for credential .. ");
                try
                {
                    g1.AddDirectorySecurity(rootFolder, NTcredential,
                                            System.Security.AccessControl.FileSystemRights.ListDirectory |
                                            System.Security.AccessControl.FileSystemRights.Traverse |
                                            System.Security.AccessControl.FileSystemRights.Delete |
                                            System.Security.AccessControl.FileSystemRights.DeleteSubdirectoriesAndFiles,
                                            System.Security.AccessControl.InheritanceFlags.ContainerInherit |
                                            System.Security.AccessControl.InheritanceFlags.ObjectInherit,
                                            System.Security.AccessControl.PropagationFlags.None,
                                            System.Security.AccessControl.AccessControlType.Allow);
                    Console.WriteLine("done");
                }
                catch (Exception errAdd)
                {
                    Console.WriteLine("err: {0}", errAdd.Message);
                }
            }
            else
            {
                Console.Write("Removing permission for credential .. ");
                try
                {
                    g1.RemoveDirectorySecurity(rootFolder, NTcredential,
                                               System.Security.AccessControl.FileSystemRights.ListDirectory |
                                               System.Security.AccessControl.FileSystemRights.Traverse |
                                               System.Security.AccessControl.FileSystemRights.Delete |
                                               System.Security.AccessControl.FileSystemRights.DeleteSubdirectoriesAndFiles,
                                               System.Security.AccessControl.InheritanceFlags.ContainerInherit |
                                               System.Security.AccessControl.InheritanceFlags.ObjectInherit,
                                               System.Security.AccessControl.PropagationFlags.None,
                                               System.Security.AccessControl.AccessControlType.Allow);
                    Console.WriteLine("done");
                }
                catch (Exception errRemove)
                {
                    Console.WriteLine("err: {0}", errRemove.Message);
                }
            }
        }