Можно заблокировать каталог, чтобы только один домен приложения мог получить к нему доступ - PullRequest
3 голосов
/ 29 января 2011

Можно ли заблокировать каталог в Windows и Linux (для моно-доступа), где только одно приложение / пользователь может получить к нему доступ?

Мне нужно записывать зашифрованные сообщения XML в каталогно не хочу, чтобы кто-нибудь их удалял.Я подозреваю, что было бы проще использовать Mono на Linux.

Если это возможно, какие классы вы бы использовали, чтобы убедиться, что он заблокирован, прежде чем начать писать в него.

Спасибо.

1 Ответ

0 голосов
/ 30 января 2011

Предполагая, что ваши каталоги находятся в файловой системе NTFS, вы можете использовать NTFS, как указано здесь , или собственный системный вызов из Mono, как указано здесь .Хитрость заключается в том, что код в каждом AppDomain должен быть запущен как его собственный пользователь.

Я думаю, было бы проще заблокировать родительский каталог, используя любую систему разрешений, поддерживаемую вашей файловой системой, такчто пользователи не могут вручную удалить эти файлы, но пользователь приложения может создать и прочитать их, а затем убедиться, что логика программы не позволяет домену AppDomain наступать на файлы других пользователей.

Если вы просто ищете синхронизацию(это означает, что вы не хотите, чтобы несколько потоков обращались к одним и тем же файлам одновременно), вы можете просто использовать центральный реестр (таблицу базы данных или другое транзакционное хранилище) для отслеживания того, кто и во что пишет.

...