Поделиться через


Управление доступом для кода для приложения ClickOnce

Обновлен: Ноябрь 2007

Приложения ClickOnce основаны на платформе .NET Framework, и для них действительны ограничения управления доступом для кода. Поэтому важно понимать влияние управления доступом для кода и писать приложения ClickOnce соответствующим образом.

Управление доступом для кода — это механизм на платформе .NET Framework, позволяющий ограничить доступ кода к защищенным ресурсам и операциям. Необходимо всегда настраивать разрешения управления доступом для кода для приложения ClickOnce, чтобы включалось только то управление доступа для кода, которое требуется для приложения. Visual Studio предоставляет средства, необходимые для определения и настройки набора разрешений, устанавливаемых для приложения.

Используемое по умолчанию управление доступом для кода приложения ClickOnce

По умолчанию при установке и запуске приложения ClickOnce на клиентском компьютере оно получает разрешения полного доверия. Несмотря на то, что могут быть случаи, в которых разрешения полного доверия действительно необходимы, предоставление таких разрешений не является лучшим решением по двум важным причинам.

  • Приложение, имеющее разрешения полного доверия, имеет неограниченный доступ к ресурсам, таким как файловая система и реестр. Это является потенциальной возможностью для использования приложения (и системы конечного пользователя) вредоносным кодом.

  • Если приложению требуются разрешения полного доверия, конечному пользователю предлагается предоставить разрешения приложению. Это означает, что приложение в действительности не предоставляет функциональные возможности ClickOnce, и такое предложение может вызвать затруднения у менее опытных пользователей.

    z17ceyya.alert_note(ru-ru,VS.90).gifПримечание.

    При установке приложения со съемного носителя, например с компакт-диска, пользователю не предлагается запрос. Кроме того, администратор сети может настроить политику работы в сети таким образом, чтобы пользователям не выдавались запросы, когда они устанавливают приложение из надежного источника. Дополнительные сведения см. в разделе Общие сведения о развертывании доверенных приложений.

Поэтому необходимо всегда изменять разрешения управления доступом для кода, чтобы включались только те разрешения, которые требуются для приложения.

Настройка разрешений безопасности

Необходимо всегда настраивать приложение ClickOnce, чтобы оно требовало только те разрешения, которые для него необходимы. Разрешения безопасности можно настроить на странице Безопасность в конструкторе проектов.

Страница Безопасность в конструкторе проектов содержит флажок Включить параметры безопасности ClickOnce-приложений. При установке этого флажка запросы разрешений безопасности добавляются в манифест развертывания для приложения. Во время установки пользователю предлагается предоставить разрешения, если требуемые разрешения выходят за рамки разрешений, предоставляемых по умолчанию для зоны, из которой развертывается приложение. Дополнительные сведения см. в разделе Практическое руководство. Включение параметров безопасности ClickOnce-приложений..

Приложениям, которые развертываются из разных мест, предоставляются различные уровни разрешений без запроса пользователя. Например, если приложение развертывается из Интернета, оно получает очень ограниченный набор разрешений. При установке из локальной интрасети оно получает больше разрешений, а при установке с компакт-диска оно получает разрешения полного доверия.

В начальной точке настройки набора разрешений можно выбрать зону безопасности из списка Зона на странице Безопасность. Если приложение может развертываться из нескольких зон, выберите зону с наименьшими разрешениями. Если нужно начать без каких-либо установленных заранее разрешений и в каждый момент времени добавлять по одному разрешению, необходимому для приложения, выберите зону Настраиваемая.

После выбора зоны список Разрешения обновляется, и в нем отображаются разрешения, предоставляемые по умолчанию для этой зоны; включенные разрешения обозначаются зеленым флажком. Дополнительные сведения см. в разделе Практическое руководство. Установка зоны безопасности для ClickOnce-приложения.

Для еще большего ограничения разрешений можно выбрать набор разрешений и изменять его свойства. Например, если в приложении должно отображаться диалоговое окно Открытие файла, набор FileDialogPermission предоставляет право отображать диалоговые окна. По умолчанию благодаря этому набору разрешений могут открываться и диалоговое окно Открытие файла, и диалоговое окно Сохранение файла. Чтобы изменить эту настройку, выберите набор FileDialogPermission, затем выберите Свойства, чтобы открыть диалоговое окно Параметры разрешений, и установите разрешение только для диалогового окна открытия. Дополнительные сведения см. в разделе Практическое руководство. Установка пользовательских разрешений для ClickOnce-приложения.

z17ceyya.alert_note(ru-ru,VS.90).gifПримечание.

Свойства, которые могут устанавливаться, зависят от набора разрешений; не у всех наборов разрешений есть настраиваемые свойства.

Можно также исключать ненужные наборы разрешений либо включать разрешения, не являющиеся частью разрешений, устанавливаемых по умолчанию для зоны. Это производится выбором значения из списка Настройка для набора разрешений. Измененные значения отображаются полужирным шрифтом. Если разрешение включено и не является частью устанавливаемых по умолчанию разрешений для зоны, рядом с флажком Включено добавляется значок сведений.

z17ceyya.alert_note(ru-ru,VS.90).gifПримечание.

При включении разрешений, не являющихся частью устанавливаемых по умолчанию разрешений для зоны, конечному пользователю предлагается установить разрешения, как уже указывалось ранее в этом разделе. При включении дополнительных разрешений необходимо всегда изменять набор разрешений и включать только разрешения, которые действительно нужны.

Определение разрешений, требующихся для приложения

Для эффективной настройки набора разрешений безопасности важно точно знать, какие разрешения требуются приложению. Можно использовать средство Калькулятор разрешений, доступное на странице Безопасность, которое анализирует код и точно определяет разрешения, необходимые приложению.

z17ceyya.alert_note(ru-ru,VS.90).gifПримечание.

Имеются некоторые ограничения для средства Калькулятор разрешений. Средство выполняет статический анализ кода и не может определять разрешения, требующиеся для кода с поздним связыванием или для динамически загружаемых сборок. Кроме того, если приложение спроектировано так, что оно динамически изменяет свои требования разрешений при выполнении в среде с меньшими разрешениями, средство сообщает о максимально требуемых разрешениях.

После того как средство проанализирует приложение, для всех требуемых наборов разрешений устанавливается значение Включен и они отображаются полужирным шрифтом. Если включенное разрешение не является частью устанавливаемых по умолчанию разрешений для зоны, оно также помечается значком предупреждения. Если необходимо, чтобы конечный пользователь не получал запрос на установку разрешений, нужно определить, имеется ли способ изменения кода, чтобы эти запросы больше не требовались.

Дополнительные сведения см. в разделе Практическое руководство. Определение разрешений для приложения ClickOnce.

Отладка приложения, имеющего ограниченные разрешения

Наиболее вероятно, что разработчик устанавливает на своем компьютере разрешения полного доверия. Поэтому при отладке приложения он не видит те исключения безопасности, которые пользователи могут видеть при выполнении этого приложения с ограниченными разрешениями.

Чтобы перехватывать эти исключения, необходимо отлаживать приложение с теми же разрешениями, что и у конечного пользователя. Отладка с ограниченными разрешениями может быть включена на странице Безопасность в конструкторе проектов.

При отладке приложения с ограниченными разрешениями исключения могут инициироваться для тех требований управления доступом для кода, которые не включены на странице Безопасность. Будут появляться вспомогательные исключения, предлагающие решения по изменению кода, чтобы предотвратить исключение.

Кроме того, при написании кода функция IntelliSense в редакторе кода отобразит серым цветом элементы, не включенные в настроенные разрешения безопасности.

Дополнительные сведения см. в разделе Практическое руководство. Отладка ClickOnce-приложения с ограниченными разрешениями.

Разрешения безопасности для приложений, размещенных в веб-обозревателе

Visual Studio предоставляет следующие типы проектов для приложений Windows Presentation Foundation (WPF):

  • WPF-приложение для Windows

  • Приложение веб-обозревателя WPF

  • Библиотека настраиваемых элементов управления WPF

  • Библиотека служб WPF

В этих типах проектов только приложения веб-обозревателя WPF размещаются в веб-обозревателе, и поэтому для них требуются особые параметры развертывания и безопасности. Для этих приложений по умолчанию используются следующие параметры безопасности.

  • Включить параметры безопасности ClickOnce-приложений.

  • Это приложение с частичным доверием

  • Зона Интернета (с разрешениями по умолчанию, установленными для выбранных приложений веб-обозревателя WPF)

В диалоговом окне Дополнительные параметры безопасности устанавливается и блокируется флажок Отладить это приложение с выбранным набором разрешений. Это является следствием того, что для приложений, размещенных в веб-обозревателе, отладка в зоне не может быть отключена.

Когда приложения веб-обозревателя WPF развертываются при помощи ClickOnce, они требуют конкретного набора разрешений (из файла appname.exe.manifest). Далее приводятся разрешения по умолчанию для набора разрешений зоны Интернет по управлению доступом для кода, в дополнение к двум другим разрешениям.

WebBrowserPermission

MediaPermission

Если устанавливаются разрешения, отличные от разрешений по умолчанию, Visual Studio формирует предупреждение о том, что приложение настраивается на требование разрешения, отличного от разрешений по умолчанию. Установка заканчивается неудачей, если политика безопасности еще не перемещена в конечный компьютер.

См. также

Задачи

Практическое руководство. Включение параметров безопасности ClickOnce-приложений.

Практическое руководство. Установка зоны безопасности для ClickOnce-приложения

Практическое руководство. Установка пользовательских разрешений для ClickOnce-приложения

Практическое руководство. Определение разрешений для приложения ClickOnce

Практическое руководство. Отладка ClickOnce-приложения с ограниченными разрешениями

Основные понятия

Развертывание и безопасность ClickOnce

Общие сведения о развертывании доверенных приложений

Ссылки

Страница "Безопасность" в конструкторе проектов