Можно заблокировать каталог, так что только один домен приложения может получить к нему доступ
Можно ли заблокировать каталог в windows и linux (для монопроцессорного доступа), доступ к которому может получить только одно приложение/пользователь?
Мне нужно записать зашифрованные XML-сообщения в каталог, но я не хочу, чтобы кто-то их удалял. Я подозреваю, что было бы проще использовать Mono на linux.
Если это возможно, какие классы вы бы использовали, чтобы убедиться, что он заблокирован, прежде чем начать писать в него.
Спасибо.
1 ответ:
Предполагая, что ваши каталоги находятся в файловой системе NTFS, вы можете использовать NTFS, как описано здесь, или собственный syscall из Mono, как описано здесь. Хитрость заключается в том, что код в каждом домене приложения должен выполняться как собственный пользователь.
Я думаю, что было бы проще заблокировать родительский каталог, используя любую разрешающую систему, поддерживаемую вашей файловой системой, чтобы пользователи не могли вручную удалить эти файлы, но пользователь приложения может создавать и читать затем убедитесь, что логика программы не позволяет домену приложений наступать на чужие файлы.
Если вы просто ищете синхронизацию (это означает, что вы не хотите, чтобы несколько потоков обращались к одним и тем же файлам одновременно), вы можете просто использовать центральный реестр (таблицу базы данных или какое-либо другое транзакционное хранилище), чтобы отслеживать, кто что записывает.