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); }
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()); }