Problem z prawami dostępu - dlaczego nie czyta praw?

0

Cześć,

mam pytanie, odnośnie c#. Od niedawna zacząłem używać linq i zastanawiam się dlaczego poniższy kod zawsze mi zwraca fałsz w ifie, skoro istnieje taki katalog i użytkownik ma pełne prawa do katalogu

var rules = File.GetAccessControl(directory).GetAccessRules(true, true, typeof(SecurityIdentifier));

                var groups = WindowsIdentity.GetCurrent().Groups;
                string sidCurrentUser = WindowsIdentity.GetCurrent().User.Value;
      
                if (
                    rules.OfType<FileSystemAccessRule>()
                            .Any(
                                r =>
                                r.IdentityReference.Value.Equals(sidCurrentUser)
                                && r.AccessControlType == AccessControlType.Allow
                                && (r.FileSystemRights & FileSystemRights.ReadData) == FileSystemRights.Read))
                {
                    System.Windows.Forms.MessageBox.Show("Folder ma własność odczytu");
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("asdasdasd");
                }

Z góry dzięki za szybkie odpowiedzi :)

1

To nie problem z linq, tylko to:

(r.FileSystemRights & FileSystemRights.ReadData) == FileSystemRights.Read) 

Sprawdzasz, czy użytkownik ma uprawnienia wyłącznie do odczytu.
Cokolwiek i ReadData zostawić może 16 różnych wyników, a tylko 1 z nich równa się Read.
Chodziło ci może o sprawdzenie, czy użytkownik ma między innymi uprawnienia do odczytu?

r.FileSystemRights.HasFlag(FileSystemRights.Read)

albo po twojemu

(r.FileSystemRights & FileSystemRights.Read) == FileSystemRights.Read) 
0

Dalej zwraca false :)

0

Czy użytkownik ma jawnie nadane uprawnienia, czy przez którąś z grup?

1 użytkowników online, w tym zalogowanych: 0, gości: 1