Для класса FileSystemWatcher
требуется ссылка на неограниченные разрешения CAS . Это означает, что он проверит, что у его прямого вызывающего абонента (т. Е. ваш код, если вы используете класс напрямую) есть неограниченные разрешения.
К сожалению, использование требования ссылки открывает потенциальные дыры в безопасности, поскольку разрешения сторонних абонентов (т. Е. Код, который вызывает ваш код) не проверяются требованием ссылки. Это означает, что сторонний вызывающий абонент с ограниченными разрешениями может быть в состоянии манипулировать вашим высоконадежным кодом для совершения от его имени чего-то гнусного, чего в противном случае он не имел бы для выполнения.
Один из способов предотвратить атаку такого рода - это применить собственную полную заявку на такое же разрешение к любому коду, который использует тип или элемент с требованием ссылки. Это будет гарантировать, что любые косвенные абоненты будут подвергаться такому же требованию разрешения, тем самым гарантируя, что они не смогут ничего сделать через ваш код, что они не смогли бы сделать самостоятельно. Пример кода MSDN для FileSystemWatcher
демонстрирует применение этого вида полного запроса.