25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

FileSystemAccessRule2.RemoveFileSystemAccessRulesAll.cs 1.1 KiB

8 yıl önce
1234567891011121314151617181920212223242526272829303132333435
  1. using Alphaleonis.Win32.Filesystem;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Security.AccessControl;
  5. using System.Security.Principal;
  6. namespace Security2
  7. {
  8. public partial class FileSystemAccessRule2
  9. {
  10. public static void RemoveFileSystemAccessRuleAll(FileSystemSecurity2 sd, List<IdentityReference2> accounts = null)
  11. {
  12. var acl = sd.SecurityDescriptor.GetAccessRules(true, false, typeof(SecurityIdentifier));
  13. if (accounts != null)
  14. {
  15. acl.OfType<FileSystemAccessRule>().Where(ace => (accounts.Where(account => account == (IdentityReference2)ace.IdentityReference).Count() > 1));
  16. }
  17. foreach (FileSystemAccessRule ace in acl)
  18. {
  19. sd.SecurityDescriptor.RemoveAccessRuleSpecific(ace);
  20. }
  21. }
  22. public static void RemoveFileSystemAccessRuleAll(FileSystemInfo item, List<IdentityReference2> accounts = null)
  23. {
  24. var sd = new FileSystemSecurity2(item);
  25. RemoveFileSystemAccessRuleAll(sd, accounts);
  26. sd.Write();
  27. }
  28. }
  29. }