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