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

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

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

Примечание.

В ClickOnce для .NET Core и .NET 5 или более поздней версии эта функция не поддерживается. Дополнительные сведения см. в разделе ClickOnce для .NET.

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

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

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

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

    Примечание.

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

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

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

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

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

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

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

Свойства, которые можно установить, зависят от набора разрешений; не все наборы разрешений имеют настраиваемые свойства. Дополнительные сведения о полном списке разрешений, которые может запрашивать ваше приложение, см. в разделе System.Security.Permissions. Дополнительные сведения о настройке разрешений для пользовательской зоны см. в разделе Практическое руководство. Установка пользовательских разрешений для приложения ClickOnce.

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

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

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

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

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

Для получения дополнительной информации см. How to: Debug a ClickOnce Application with Restricted Permissions.

Разрешения безопасности для приложений веб-браузера

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

  • Приложение Windows WPF

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

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

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

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

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

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

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

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