Пример #1
0
        public void GetAccessControl1()
        {
            string path = Path.Combine(Path.GetTempPath(), "CadruTest");

            Directory.CreateDirectory(path);
            DirectoryInfo di = new DirectoryInfo(path);

            ExtendedDirectoryInfo edi = new ExtendedDirectoryInfo(path);

            Assert.IsNotNull(edi);

            DirectorySecurity actual   = edi.GetAccessControl(AccessControlSections.All);
            DirectorySecurity expected = di.GetAccessControl(AccessControlSections.All);

            CollectionAssert.AreEqual(expected.GetSecurityDescriptorBinaryForm(), actual.GetSecurityDescriptorBinaryForm());
        }
Пример #2
0
        public void SetAccessControl()
        {
            string path = Path.Combine(Path.GetTempPath(), "CadruTest");

            Directory.CreateDirectory(path);

            DirectoryInfo     di       = new DirectoryInfo(path);
            DirectorySecurity expected = di.GetAccessControl(AccessControlSections.All);

            ExtendedDirectoryInfo edi = new ExtendedDirectoryInfo(path);

            Assert.IsNotNull(edi);

            DirectorySecurity directorySecurity = new DirectorySecurity();

            directorySecurity.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));

            edi.SetAccessControl(directorySecurity);

            Assert.AreNotEqual(expected.GetSecurityDescriptorBinaryForm(), edi.GetAccessControl().GetSecurityDescriptorBinaryForm());

            DirectorySecurity           actualDirectorySecurity = Directory.GetAccessControl(path);
            AuthorizationRuleCollection rules = actualDirectorySecurity.GetAccessRules(true, true, typeof(NTAccount));

            foreach (AuthorizationRule rule in rules)
            {
                FileSystemAccessRule accessRule = (FileSystemAccessRule)rule;

                if (accessRule.IdentityReference.Value == "Everyone")
                {
                    Assert.IsTrue(accessRule.AccessControlType == AccessControlType.Allow);
                    Assert.IsTrue(accessRule.FileSystemRights == FileSystemRights.FullControl);
                }
            }

            di.SetAccessControl(expected);
        }