Ответ 1
Я не думаю, что вы сможете контролировать это с С# напрямую. В любом случае, не без помощи операционной системы хоста. Windows и NTFS позволяют вам проверять конкретный каталог и регистрировать обращения в журнале событий безопасности для хост-машины (поэтому сервер, на котором размещен этот ресурс, должен будет проверять, а не клиент).
От KB310399 - Как проверить доступ пользователей к файлам, папкам и принтерам в Windows XP
Аудит доступа пользователей к файлам, папкам и принтерам
Журнал аудита отображается в журнале безопасности в средстве просмотра событий. Чтобы включить эту функцию:
- Нажмите "Пуск", выберите "Панель управления", "Производительность и обслуживание", а затем "Администрирование".
- Дважды щелкните Локальная политика безопасности.
- В левой панели дважды щелкните Локальные политики, чтобы развернуть его.
- В левой панели выберите политику аудита, чтобы отобразить отдельные параметры политики на правой панели.
- Дважды щелкните доступ к объекту Аудит.
- Чтобы проверить успешный доступ к указанным файлам, папкам и принтерам, установите флажок Успех.
- Чтобы проверить безуспешный доступ к этим объектам, установите флажок "Сбой".
- Чтобы включить аудит обоих, установите оба флажка.
- Нажмите "ОК" .
Указание файлов, папок и принтеров на аудит
После включения аудита вы можете указать файлы, папки и принтеры, которые вы хотите проверить. Для этого:
- В проводнике Windows найдите файл или папку, которые вы хотите проверить. Чтобы проверить принтер, найдите его, нажав кнопку "Пуск", а затем "Принтеры и факсы".
- Щелкните правой кнопкой мыши файл, папку или принтер, который вы хотите проверить, и нажмите "Свойства".
- Перейдите на вкладку "Безопасность" и нажмите "Дополнительно".
- Перейдите на вкладку "Аудит" и нажмите "Добавить".
- В поле "Введите имя объекта для выбора" введите имя пользователя или группы, доступ к которым вы хотите проверить. Вы можете просмотреть компьютер для имен, нажав кнопку "Дополнительно", а затем "Найти сейчас" в диалоговом окне "Выбор пользователя или группы".
- Нажмите "ОК" .
- Установите флажки "Успешно или Неудачно" для действий, которые вы хотите проверить, а затем нажмите "ОК" .
- Нажмите "ОК" , а затем "ОК" .
Процесс похож на серверные операционные системы и Windows Vista/Windows 7. Если вы пройдете этот маршрут, вы можете запустить программу С# в журнале событий (см. EventLog
), чтобы искать нужные данные.
Примечание. Начиная с Vista вы должны быть и (UAC при необходимости при необходимости), чтобы читать их из кода.