Практическое руководство. Анализ проблем с разрешениями сборки с помощью Caspol.exe
Обновлен: Ноябрь 2007
Можно использовать средство для настройки политики управления доступом для кода (Caspol.exe) для устранения проблем, которые могут привести к невозможности запуска сборки, отказу в доступе к защищенным ресурсам или незапланированному запуску сборки.
Анализ проблем с невыполняющимися сборками
Используйте параметры –all и –resolveperm для выявления разрешений, предоставленных политикой проблемной сборке:
caspol –all –resolveperm assembly–file
Проверив, установлен ли флаг выполнения в классе SecurityPermission, определите, имеет ли сборка необходимые для выполнения права. Если сборка имеет права на выполнение, то либо набор разрешений безопасности будет неограничен, либо атрибут флагов будет включать флаг выполнения.
Если сборка должна иметь доступ к защищенному ресурсу (например, записывать данные на диск, создавать окна, вносить изменения в реестр и т.п.), проверьте, имеет ли она соответствующие разрешения.
Поскольку разрешения, предоставленные уровнями политики предприятия, компьютера и пользователя, пересекаются, для получения сборкой какого–либо разрешения оно должно быть предоставлено на всех уровнях. Если сборка имеет недостаточные разрешения, проверьте разрешения, предоставленные ей на каждом из уровней политики:
caspol –enterprise –resolveperm assembly–file
caspol –machine –resolveperm assembly–file
caspol –user –resolveperm assembly-file
Сборка не будет правильно выполняться, если она является частью группы кода, условие членства которой слишком ограниченное, или если набор разрешений, связанный с этой группой кода, не содержит разрешений, необходимых для работы сборки. Если разрешений, предоставленных коду, недостаточно, можно создать новую группу кода, которая предоставит сборке необходимые разрешения.
Кроме того, можно изменить связанный со сборкой набор разрешений или условие членства одной из существующих групп кода таким образом, чтобы сборка получила соответствующие разрешения. Дополнительные сведения об этих манипуляциях см. в разделе Практическое руководство. Изменение групп кода с помощью Caspol.exe.
Анализ сборок, которые обращаются к защищенным ресурсам или запускаются несанкционированно
- Если сборка выполняется несанкционированно или получает доступ к ресурсам, к которым ей обращаться нельзя (например, к ресурсам, необходимым для создания диалоговых окон), то, вероятно, ей было предоставлено слишком много разрешений. С помощью параметра –resolveperm определите, какие разрешения были предоставлены этой сборке. Затем воспользуйтесь параметром –resolvegroups для определения групп кода, к которым принадлежит эта сборка. Измените условия членства или связанные со сборкой наборы разрешений связанных групп кода так, чтобы ограничить разрешения, предоставленные сборке.
См. также
Основные понятия
Ссылки
Средство настройки политики управления доступом для кода (Caspol.exe)
Другие ресурсы
Устранение проблем политики безопасности с помощью Caspol.exe