Ich schreibe eine Anwendung, um den Benutzerzugriff auf Dateien zu verwalten. Die kurze Version einer sehr langen Geschichte ist, dass ich dazu Verzeichnis- und Datei-Privilegien verwenden muss. Kein Dokumentenverwaltungssystem für unseren billigen CEO ...C# Datei-/Verzeichnisberechtigungen
Wie auch immer ... Ich habe alles funktioniert außer dem Fall, wo der Benutzer sehen kann, welche Dateien im Verzeichnis sind, aber nicht den Inhalt der Datei tatsächlich sehen. (Es kann empfindliche HR-Daten in den Dateien geben.)
Ich versuchte FileSystemRights.ListDirectory, aber das scheint (trotz MS-Dokumentation) ReadData auf True setzen. Ich deaktiviere ReadData (die Fähigkeit, die Dateien zu lesen) und habe plötzlich keinen Zugriff mehr auf das Verzeichnis. Die beiden erscheinen verknüpft.
Irgendwelche Ideen für welche Erlaubnis (en), um dies zu erreichen?
Mein aktueller Code ist:
SetSecurity(pth, usr, FileSystemRights.ListDirectory, AccessControlType.Allow);
...
public void SetSecurity(string dirName, string account,
FileSystemRights rights, AccessControlType controlType)
{
// Get a FileSecurity object that represents the
// current security settings.
DirectorySecurity dSecurity = Directory.GetAccessControl(dirName);
dSecurity.AddAccessRule(new FileSystemAccessRule(account, rights, controlType));
// Set the new access settings.
Directory.SetAccessControl(dirName, dSecurity);
}
Dank.
--Jerry
Ja. Die Dateien erben von dem Ordner. Ein weiteres "CEO weigert sich, eine echte Dokumentenmanagement-Lösung zu kaufen" -Problem, das wir haben müssen. – Jerry
Nach dem Testen ohne Vererbung für einen bestimmten Ordner haben Sie Recht. Sie können den Ordner aktivieren, dann die Datei selbst deaktivieren und es funktioniert wie gewünscht ... aber aus anderen Gründen ist dies für uns keine Option. – Jerry