Безопасность доступа к коду для приложений ClickOnce

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

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

Замечание

В ClickOnce для .NET Core и .NET 5 или более поздней версии безопасность доступа к коду не поддерживается. В .NET Framework использование безопасности доступа к коду не является лучшей практикой и не рекомендуется.

Безопасность доступа к коду ClickOnce по умолчанию

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

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

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

    Замечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Включение параметров безопасности ClickOnce

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

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

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