Безопасность и доверие
В платформе .NET Framework реализована система безопасности, по-разному обрабатывающая приложения в зависимости от их происхождения. Исполняемые файлы и сборки, которые находятся на компьютере пользователя, обычно выполняются с полным доверием; Одни и те же исполняемые файлы и сборки, выполняемые через Интернет, обычно выполняются с частичным доверием. Это необходимо, чтобы вредоносный код не считывал или изменял информацию, к которой у него нет доступа, например локальные файлы, элементы в буфере обмена и другие ресурсы. Если исполняемый файл вызывает сборку, которая, в свою очередь, вызывает другую сборку, требующую определенного уровня доверия, применяется самый низкий уровень доверия из всех компонентов в цепочке. Однако администратор на компьютере может задать определенные разрешения, которые переопределяют разрешения по умолчанию.
Общие сведения о модели безопасности приведены в разделе Безопасность, элементы управления Light-Weight Client-Side, а дополнительные сведения о модели безопасности см. в статье Безопасность доступа к коду на практике. Хороший обзор безопасности библиотек (что особенно важно для объектов UserControl на веб-странице) можно найти в разделе Использование библиотек из частично доверенного кода, а другие сведения о безопасности для управляемых элементов управления можно найти в статье Написание защищенных управляемых элементов управления.
Разрешения
Большинство управляемых объектов и членов в API технологий планшетного пк имеют два требования:
- Выполнение всегда требуется.
- Функция FullTrust требуется при выполнении действия безопасности InheritanceDemand . Это означает, что полное доверие требуется, когда производный класс наследует класс или переопределяет метод из пакета SDK для планшетного компьютера.
В следующей таблице перечислены классы и члены, которым требуются дополнительные разрешения. Разрешения для данного класса также применяются ко всем его членам, не перечисленным в этой таблице.
Примечание
Как правило, для конструкторов предпочтительнее использовать элемент управления , а не дескриптор (IntPtr), так как элементам управления требуется меньше разрешений. Аналогичным образом предпочтительнее использовать объект Graphics, а не дескриптор для Renderer.Draw, Renderer.InkSpaceToPixel и Renderer.PixelToInkSpace.
Примечание
Свойства InkCollector.Handle и InkOverlay.Handle не требуют разрешения SecurityPermissionFlag.UnmanagedCode, если дескриптор предназначен для элемента управления Windows Forms, но для других окон.
Примечание
Для класса PenInputPanel требуются следующие методы и свойства SecurityPermissionFlag.AllFlags: PenInputPanel(IntPtr), AttachedEditWindow, Busy, CommitPendingInput, CurrentPanel, DefaultPanel, EnableTsf, Factoid, Height, HorizontalOffset, InputFailed, Left, MoveTo, PanelChanged, PanelMoving, Refresh , Top, VerticalOffset, Visible, VisibleChanged и Width.
Другие вопросы
Ниже приведены некоторые другие известные рекомендации по обеспечению безопасности.
- Для правильной работы веб-элементов управления требуется Microsoft Internet Обозреватель 6 или более поздней версии. При использовании Internet Обозреватель 5.5 загружаются только начальные управляемые элементы управления. Дополнительные элементы управления нельзя загружать динамически во время выполнения.
- Если вы используете Windows XP с пакетом обновления 2 (SP2) и CLR1.0, то наличие веб-элементов управления в Интернете Обозреватель потребует добавления сайта в качестве доверенного сайта, даже если они находятся в зоне интрасети. Однако при этом они больше не будут работать в зоне доверенного сайта, хотя и в зоне интрасети. Эта проблема устранена в СРЕДЕ CLR1.1.