1. Темы лекции: ASP.NET. Web Forms. Часть 3.
Практическое задание: ASP.NET. Web Forms.
Тренер: Игорь Шкулипа, к.т.н.
Разработка Веб-приложений на платформе
Microsoft .NET Framework.
Занятие 7
2. http://www.slideshare.net/IgorShkulipa 2
ASP.NET Web Parts
С помощью ASP.NET Web Parts Framework легко создавать собственные
пользовательские веб-страницы. Эта платформа состоит из элементов управления
и компонентов, которые выполняют:
• Определение настраиваемых разделов.
Платформа позволяет структурировать страницу и указывать настраиваемые
разделы страницы через так называемые зоны веб-частей.
• Предоставление компонентов для выбора элементов.
В дополнение к настраиваемым разделам платформа поставляется со
специальными готовыми разделами, позволяющими редактировать свойства
информационных элементов, отображаемых на странице, или добавлять и удалять
элементы информации на странице.
• Настройка веб-страницы.
Как только пользователь зарегистрировался в приложении, он может настроить
веб-страницу, перетаскивая отображенные элементы по разным настраиваемым
разделам. Пользователь может даже закрыть или свернуть содержимое, чтобы
освободить больше места для другого, более интересного содержимого.
• Сохранение настроенного внешнего вида.
ASP.NET автоматически сохраняет персонализированный внешний вид веб-
страницы с помощью инфраструктуры персонализации.
Страница, использующая эту платформу, называется страницей веб-частей, а
информационные элементы, которые могут отображаться на странице - веб-
частями.
3. http://www.slideshare.net/IgorShkulipa 3
Создание веб-частей
• Создание страницы.
• Добавление элемента управления WebPartManager.
• Добавление элементов управления WebPartZone.
Каждый раздел на странице, который должен отображать специальные
веб-части, инкапсулируется в экземпляр элемента управления
WebPartZone.
• Добавление веб-частей.
Можно применять простые пользовательские элементы управления,
готовые пользовательские элементы управления, специальные
серверные элементы управления либо элементы управления,
унаследованные непосредственно от класса WebPart.
• Добавление предварительно построенных зон и частей.
Если пользователь желает добавлять или удалять веб-части во время
выполнения либо редактировать свойства веб-частей, к веб-странице
понадобится добавить предварительно построенные готовые зоны,
такие как CatalogZone, которая дает возможность пользователю
добавлять веб-части на страницу.
4. http://www.slideshare.net/IgorShkulipa 4
Элементы управления WebPartManager и WebPartZones
Элемент WebPartManager работает со всеми добавленными н веб-
странице зонами и знает обо всех доступных веб-частях страницы. Он
управляет персонализацией и обеспечивает настройку веб-страницы
для текущего зарегистрированного пользователя.
Элемент управления WebPartManager также генерирует исключения,
которые можно перехватывать в своих приложениях для выполнения
необходимых действий, когда пользователь добавляет или удаляет
веб-часть, либо когда одна веб-часть взаимодействует с другой веб-
частью.
После помещения на страницу элемента WebPartManager можно
добавлять настраиваемые разделы. Такие разделы называются зонами
веб-частей (WebPartZones), и каждая зона может содержать столько
веб-частей, сколько необходимо пользователю.
8. http://www.slideshare.net/IgorShkulipa 8
Уровни безопасности
В основном, для большей части веб-приложений основные задачи для
реализации защиты, всегда одни и те же:
• Аутентификация
• Авторизация
• Конфиденциальность
• Целостность
ASP.NET включает базовую инфраструктуру для выполнения
аутентификации и авторизации. Библиотека базовых классов .NET
Framework включает ряд классов в пространстве имен
System.Security, которые предназначены для шифрования и подписи
данных.
9. http://www.slideshare.net/IgorShkulipa 9
Аутентификация
Аутентификация - процесс определения идентичности пользователя и
обеспечения гарантий этой идентичности. Процесс аутентификации
аналогичен регистрации пользователей. Как только идентичность
установлена, маркер подтверждает ее, так что куда бы вы ни пошли в
пределах конкретной области, ваша личность будет известной.
В приложениях ASP.NET аутентификация реализуется одной из следующих
возможных аутентифицирующих систем:
• аутентификация Windows
• аутентификация с помощью форм
• специальный процесс аутентификации
Идентичность пользователя отслеживается разными способами, в зависимости
от типа аутентификации.
Например, операционная система Windows использует 96-битное число,
называемое SID (security identifier - идентификатор безопасности) для
идентификации каждого входящего пользователя.
При аутентификации с помощью форм ASP.NET пользователю выдается
аутентифицирующий мандат формы, представляющий собой комбинацию
значений, которые шифруются и помещаются в cookie-набор.
10. http://www.slideshare.net/IgorShkulipa 10
Авторизация
Авторизация - это процесс определения прав и ограничений,
назначенных аутентифицированному пользователю. Авторизация - это
процесс выдачи допуска на определенные ресурсы, например, на
главную страницу.
В веб-приложениях разные типы авторизации происходят на разных
уровнях. Например, на самом верхнем уровне код может проверять
идентичность пользователя и решать, можно ли продолжать данную
операцию. На нижнем уровне можно настроить ASP.NET так, чтобы
запрещать доступ к определенным веб-страницам или каталогам для
определенных пользователей или ролей. На еще более низком уровне,
когда код выполняет различные задачи - такие как подключение к
базе данных, открытие файла записи в журнал событий и т.п. -
операционная система Windows проверяет права учетной записи
Windows, от имени которой выполняется данный код.
11. http://www.slideshare.net/IgorShkulipa 11
Конфиденциальность и целостность
Конфиденциальность означает обеспечение невидимости данных для
неавторизованных пользователей во время передачи их по сети или
сохранении в хранилищах, таких как базы данных.
Целостность - это обеспечение невозможности изменения данных никем
во время передачи по сети или сохранения в хранилище. И то, и
другое основано на шифровании.
Шифрование - процесс кодирования данных, делающий невозможным их
чтение другими пользователями. Шифрование в ASP.NET является
средством, полностью отделенным от аутентификации, авторизации и
заимствования прав. Его можно применять в комбинации с этими
средствами либо самостоятельно.
12. http://www.slideshare.net/IgorShkulipa 12
Получение доступа к странице
По умолчанию анонимные пользователи могут обращаться к любой странице
ASP.NET. Но когда пользователь запрашивает веб-страницу, анонимный доступ к
которой закрыт, выполняется несколько шагов:
• Запрос отправляется веб-серверу.
• Пользователь предоставляет свое «удостоверение», которое затем
верифицируется - либо вашим приложением (в случае аутентификации с
помощью форм), либо автоматически средствами IIS (в случае аутентификации
Windows).
• Если удостоверение пользователя подтверждается, ему предоставляется доступ
к веб-странице. Если же оно оценивается как нелегитимное, ему предлагается
повторить попытку регистрации, либо же выполняется переадресация на
страницу с сообщением о закрытии доступа.
13. http://www.slideshare.net/IgorShkulipa 13
Получение доступа к защищенной странице
Когда пользователь запрашивает защищенную веб-страницу, которая открыта
только для определенных пользователей или ролей, процесс аналогичен, но
добавляется дополнительный шаг:
• Предыдущие пункты
• Удостоверение или роли аутентифицированного пользователя сравниваются со
списком разрешенных пользователей и ролей. Если пользователь присутствует
в списке, ему открывается доступ к ресурсу, в противном случае доступ будет
закрыт.
• Пользователи, которым отказано в доступе, либо приглашаются на повторную
регистрацию, либо перенаправляются на веб-страницу с сообщением о закрытии
доступа.
14. http://www.slideshare.net/IgorShkulipa 14
Аутентификация с помощью форм
Аутентификация с помощью форм - это система аутентификации общего
назначения, основанная на двух концепциях.
• Первая из них - страница входа (login page), которая может
удостоверить действительность пользователей (обычно сверяя
комбинацию имени и пароля с базой данных или другим хранилищем
данных).
• Вторая - это механизм предохранения и восстановления
контекста безопасности при каждом запросе (обычно с
применением cookie-набора). Таким образом, пользователю
понадобится войти только один раз.
Аутентификация с помощью форм основана на билетах (также
называемых маркерами). Это значит, что когда пользователь
регистрируется, он получает так называемый билет с базовой
информацией о себе. Информация сохраняется в зашифрованном
cookie-наборе, который присоединяется к ответу, так что
автоматически отправляется в каждом последующем запросе.
Аутентификация с помощью форм инкапсулирована в виде класса
FormsAuthentication.
16. http://www.slideshare.net/IgorShkulipa 16
Преимущества АсПФ
• Контроль над кодом аутентификации
Поскольку аутентификация с помощью форм реализована полностью внутри
ASP.NET, вы получаете полный контроль над выполнением аутентификации.
Вам не нужно полагаться ни на какую внешнюю систему, как это имеет место
при аутентификации Windows.
• Контроль над внешним видом формы входа
Вы имеете ту же степень контроля над внешним видом аутентификации с
помощью форм, что и над ее функциональностью.
• Работа с любым браузером
Аутентификация с помощью форм использует в качестве пользовательского
интерфейса стандартный HTML, так что все браузеры могут его обработать.
• Хранение информации о пользователях
Аутентификация с помощью форм по умолчанию хранит пользователей в файле
web.config, но эту информацию можно хранить где угодно. Для этого
понадобится только написать код, который обращается к хранилищу данных и
извлекает информацию о пользователях.
• Гибкость в хранении информации о пользователях также означает возможность
контроля над созданием и администрированием пользовательских
учетных записей, а также присоединения дополнительной информации к этим
учетным записям, такой как персональные предпочтения по настройке внешнего
вида веб-сайта
17. http://www.slideshare.net/IgorShkulipa 17
Недостатки АсПФ
• Вы должны самостоятельно создавать пользовательский интерфейс
для регистрации пользователей. Можно либо целиком создать
собственную страницу входа, либо использовать элементы управления
безопасностью ASP.NET.
• Вы должны самостоятельно поддерживать каталог удостоверений
пользователей.
• Вы должны самостоятельно предпринимать дополнительные
предосторожности против вмешательства в сетевой трафик.
18. http://www.slideshare.net/IgorShkulipa 18
Классы платформы аутентификации с помощью форм
Имя класса Описание
FormsAuthentication
Основной класс для взаимодействия с инфраструктурой
аутентификации с помощью форм. Он предоставляет
базовую информацию о конфигурации и позволяет
создавать билет, устанавливать cookie-наборы и
перенаправлять со страницы входа на исходную
запрошенную страницу в случае успешной проверки
удостоверения пользователя
FormsAuthenticationEventArgs
FormsAuthenticationEventArgs инициирует событие
Authenticate, которое можно перехватить. Соглашения о
передаваемых аргументах события инкапсулируются в
экземпляре этого класса. Содержит базовую информацию
об аутентифицированном пользователе
FormsAuthenticationTicket
Этот класс предоставляет информацию о пользователе,
которая будет зашифрована и помещена в cookie-набор
аутентификации
FormsIdentity
Этот класс реализует интерфейс IIdentity и является
специфичным для аутентификации с помощью форм.
Ключевым дополнением класса FormsIdentity, кроме
членов, необходимых для реализации интерфейса
IIdentity, является свойство Ticket, представляющее билет
аутентификации. Это позволяет сохранять и извлекать
дополнительную информацию из билета
FormsAuthenticationModule
Ядро инфраструктуры аутентификации с помощью форм,
устанавливающее контекст безопасности и выполняющее
при необходимости автоматическое перенаправление на
страницу входа
24. http://www.slideshare.net/IgorShkulipa 24
Membership API
Платформа Membership API предоставляет полный набор готовых функций управления
пользователями:
• Возможность создавать и удалять пользователей - как программно, так и с помощью
веб-утилиты конфигурирования ASP.NET.
• Возможность переустановки паролей с автоматической отправкой пользователям
новых паролей по электронной почте, если известен адрес электронной почты данного
пользователя.
• Возможность автоматической генерации паролей для пользователей, если
пользователи создаются автоматически в фоновом режиме.
• Возможность нахождения пользователей в лежащем в основе хранилище данных,
а также извлечения списков пользователей и подробной информации о каждом их них.
• Набор предварительно разработанных элементов управления для создания страниц
входа и регистрации, а также для отображения состояния входа в различных
представлениях для аутентифицированных и не аутентифицированных пользователей.
• Уровень абстракции, который обеспечивает независимость приложений от
конкретного лежащего в основе хранилища данных через классы поставщиков
членства. Любая функциональность, перечисленная выше, работает совершенно
независимо от конкретного используемого хранилища данных, и одни хранилища данных
можно заменять на другие - совершенно без необходимости в какой-либо модификации
приложений. По умолчанию Membership API полагается на базу данных SQL Server Express
для хранения информации о пользователях и ролях.
26. http://www.slideshare.net/IgorShkulipa 26
Классы Membership API
Компонент Описание
Membership
Класс Membership - центральная точка взаимодействия с
Membership API. Он предоставляет ряд методов для управления
пользователями, их проверки и переустановки паролей
MembershipCreateUserException Исключение, генерируемое в случае возникновения ошибки при
попытке создания пользователя классом Membership
MembershipUser
Представляет отдельного пользователя, записанного в
хранилище данных Membership API. Этот объект содержит всю
информацию о пользователе и возвращается несколькими
методами класса Membership, например, GetUser()
MembershipUserCollection
Коллекция пользователей Membership. Например, метод
GetUsers() класса Membership возвращает экземпляр этой
коллекции
MembershipProvider
Базовый класс, от которого наследуются собственные классы
поставщиков членства, которые аутентифицируют
пользователей по специальному хранилищу удостоверений
MembershipProviderCollection Коллекций доступных поставщиков членства на машине для
данного веб-приложения
SqlMembershipProvider Реализаций класса MembershipProvider, работающая с базами
данных SQL Server
ActiveDirectoryMembershipProvider Реализация класса MembershipProvider, работающая со службой
Active Directory
ActiveDirectoryMembershipUser
Класс, который наследует всю функциональность
MembershipUser и добавляет некоторые специфичные для
Active Directory свойства
27. http://www.slideshare.net/IgorShkulipa 27
Элементы управления безопасностью
Платформа ASP.NET поставляется с множеством элементов управления, которые упрощают
построение, например, страниц входа, а также связанных с ними страниц
Элемент
управления
Описание
Login
Составной элемент управления, который решает наиболее общую задачу в
приложениях, основанных на аутентификации с помощью форм - отображает
текстовые поля для ввода имени пользователя и пароля, а также кнопку входа.
LoginStatus
Простой элемент управления, проверяющий состояние аутентификации текущего
сеанса. Если пользователь не аутентифицирован, он предлагает кнопку входа для
перенаправления на сконфигурированную страницу входа. В противном случае
отображает кнопку выхода, обеспечивая возможность выхода из приложения.
Этот элемент инкапсулирует поведение, которое обычно должно быть доступно на
всех страницах. Поэтому его очень удобно размещать на мастер-странице.
LoginView
Элемент управления, который дает возможность отображать разные наборы
элементов управления для аутентифицированных и неаутентифицированных
пользователей.
PasswordRecovery Позволяет пользователю извлечь пароль, если при регистрации был указан его
адрес электронной почты.
ChangePassword Составной элемент управления, который запрашивает старый пароль
пользователя и позволяет ему ввести и подтвердить новый пароль.
CreateUserWizard Включает полный мастер, который проводит пользователя (или администратора)
через процесс создания нового пользователя.
28. http://www.slideshare.net/IgorShkulipa 28
Настройка Membership API
Прежде чем можно будет использовать интерфейс Membership API и элементы
управления безопасностью ASP.NET, потребуется выполнить несколько
шагов:
• Сконфигурируйте аутентификацию с помощью форм в файле web.config
обычным образом и запретите доступ анонимным пользователям.
• Настройте хранилище данных членства. Например, если используется SQL
Server, то в базе данных SQL Server придется создать несколько таблиц и
хранимых процедур.
• Сконфигурируйте в файле web.config строку подключения к базе данных и
поставщика членства, который должен использоваться.
• Создайте пользователей в хранилище данных членства с помощью веб-
утилиты конфигурирования ASP.NET, либо воспользуйтесь собственной
страницей администрирования, которая может быть реализована в веб-
приложении с применением функций Membership API.
• Создайте страницу входа, которая использует готовый элемент управления
Login или класс Membership для проверки введенных удостоверений и
аутентификации пользователей.
29. http://www.slideshare.net/IgorShkulipa 29
Настройка Membership API
Все шаги по конфигурированию за исключением настройки поставщика можно
выполнить с помощью ASP.NET WAT (Web Site Administration Tool - инструмент
администрирования веб-сайтов), в состав которого входит мастер настройки
безопасности.
35. http://www.slideshare.net/IgorShkulipa 35
Элементы управления проверки достоверности
В состав ASP.NET входит элементы управления проверкой достоверности. Эти
элементы выполняют за разработчика приличную часть сложной работы,
упрощая процесс проверки и избавляя от необходимости писать длинный код. :
• RequiredFieldValidator
Контролирует, не пуст ли проверяемый элемент управления.
• RangeValidator
Контролирует, находится ли значение связанного элемента управления в
пределах определенного диапазона.
• CompareValidator
Контролирует, соответствует ли значение данного элемента управления
определенной операции сравнения (больше, меньше и т.д.) с другой
константой или значением элемента управления
• RegularExpressionValidator
Контролирует, соответствует ли значение данного элемента управления
определенному регулярному выражению
• CustomValidator
Позволяет определить любую клиентскую или серверную операцию проверки
достоверности JavaScript для выполнения собственной логики проверки
достоверности
• ValidationSummary
Отображает итоговую информацию с сообщениями об ошибках для каждого
давшего сбой элемента управления
36. http://www.slideshare.net/IgorShkulipa 36
Элемент управления RegularExpressionValidator
Элемент управления RegularExpressionValidator является одним из
самых мощных средств в наборе инструментов разработчика
приложений ASP.NET. Он позволяет проверять текст путем
сопоставления с образцом, определенным в регулярном выражении.
От разработчика требуется всего лишь установить это регулярное
выражение в свойстве ValidationExpression.
37. http://www.slideshare.net/IgorShkulipa 37
Часто используемые регулярные выражения
Содержимое
Регулярное
выражение
Описание
Адрес
электронной
почты
S+@S+.S+
Определяет электронный адрес, в котором обязательно
должен присутствовать символ @ и точка (.), и допускает
наличие только непробельных символов
Пароль w+
Определяет пароль, допускающий любую
последовательность словесных символов (букв, пробелов
или символов подчеркивания)
Пароль
специфической
длины
w{4,10} Определяет пароль, который должен состоят не менее чем
из 4, но и не более чем из 10 символов
Расширенный
пароль
[a-zA-Z]w{4,10}
Определяет пароль, в котором, как в пароле специфической
длины, может всего присутствовать от 4 до 10 символов.
Хитрость состоит в том, что первый символ должен
находиться в диапазоне a-z или A-Z (т.е. должен
начинаться с обычной буквы)
Еще один
расширенный
пароль
[a-zA-Z]w*d+w*
Определяет пароль, начинающийся с буквенного символа,
за которым следует ноль или более словесных символов,
потом одна или более цифр и затем снова ноль или более
словесных символов. Проще говоря, требует, чтобы где-то
внутри пароля содержалось число. С помощью аналогичной
схемы можно также требовать, чтобы в пароле содержалось
как минимум два числа или другой специальный символ
Поле
ограниченной
длины символов
S{4,10}
Определяет строку длиной от 4 до 10 символов (подобно
примеру пароля), но позволяет использовать специальные
символы (звездочки, амперсанды и т.д.)
40. http://www.slideshare.net/IgorShkulipa 40
ASP.NET AJAX на сервере: элемент управления
ScriptManager
Элемент ScriptManager является "мозговым центром" серверной части модели
ASP.NET AJAX. Этот веб-элемент управления не имеет никакого визуального
представления на странице. Однако он решает ключевую задачу -
визуализирует ссылки на JavaScript-библиотеки ASP.NET AJAX.
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
Каждая страница, которая использует функции ASP.NET AJAX, требует наличия
экземпляра ScriptManager. Внутри страницы допустимо иметь только один
элемент управления ScriptManager.
Если функции ASP.NET AJAX используются во всем веб-сайте, имеет смысл
поместить элемент ScriptManager в мастер-страницу.
Все элементы управления ASP.NET AJAX нуждаются в ScriptManager. Если их
разместить на странице, которая не содержит ScriptManager, работать они не
будут и приведут к генерации исключения InvalidOperationException.
Например, UpdatePanel - удобный элемент управления, который позволяет взять
обычную страницу с серверной логикой и обеспечить ее обновление в лишенном
мерцания стиле Ajax.
41. http://www.slideshare.net/IgorShkulipa 41
ASP.NET AJAX Control Toolkit
ASP.NET AJAX содержит модель, которая для добавления
функциональности ASP.NET AJAX к существующим элементам
управления использует расширители элементов управления. С
помощью расширителей элементов управления эффекты Ajax можно
добавлять к существующей странице, не изменяя используемый ею
набор элементов управления.
Собственно платформа ASP.NET не содержит какие-либо расширители
элементов управления. Их включает в себя инструментарий ASP.NET
AJAX Control Toolkit.
Наиболее примечательная особенность инструментария ASP.NET AJAX в
том, что он разрабатывается с применением совместной модели с
открытым исходным кодом, которая позволяет принимать участие в
разработке всему сообществу. Инструментарий ASP.NET Control Toolkit
AJAX является бесплатным и включает полный исходный код.
43. http://www.slideshare.net/IgorShkulipa 43
Расширители ASP.NET AJAX Control Toolkit
Имя Описание
AlwaysVisibleControlExtender
Этот расширитель фиксирует элемент управления в
определенной позиции (например, в верхнем левым углу веб-
страницы) даже при прокрутке содержимого страницы
AnimationExtender
Этот мощный и удивительно гибкий расширитель позволяет
добавлять анимационные эффекты, такие как изменение
размеров, перемещение, затухание, изменение цвета и многие
другие, по отдельности или в комбинации друг с другом
AutoCompleteExtender
Этот расширитель позволяет предоставлять список
предложенных записей на основе частичного ввода данных
пользователем. Список записей генерируется методом веб-
службы, как описано в предыдущем разделе
CalendarExtender
Этот расширитель отображает всплывающий календарь,
который может быть присоединен к текстовому полю для
облегчения ввода даты. Когда пользователь выбирает дату,
она вставляется в присоединенный элемент управления
CascadingDropDown
Этот расширитель позволяет присоединять раскрывающиеся
списки, не прибегая к кодированию решения вручную
CollapsiblePanelExtender
Этот расширитель позволяет сворачивать и разворачивать
панели на странице. Остальная часть содержимого страницы
обтекает их автоматически
ColorPickerExtender
Этот расширитель отображает всплывающий инструмент для
выбора цвета, который может быть присоединен к текстовому
полю для облегчения выбора цвета
44. http://www.slideshare.net/IgorShkulipa 44
Расширители ASP.NET AJAX Control Toolkit
ColorPickerExtender
Этот расширитель отображает всплывающий инструмент для
выбора цвета, который может быть присоединен к текстовому
полю для облегчения выбора цвета
ConfirmButtonExtender
Этот расширитель перехватывает щелчки на элементах
управления Button, LinkButton или ImageButton и выводит на
экран подтверждающее сообщение. Событие щелчка
подавляется, если пользователь решает отменить действие в
диалоговом окне подтверждения
DragPanelExtender Этот расширитель позволяет перетаскивать панель по странице
DropDownExtender
Этот расширитель превращает практически любой элемент
управления в раскрывающийся, когда курсор мыши помещается
поверх него. Например, DropDownExtender можно использовать в
сочетании с обычным элементом управления Label. Тогда
пользователь сможет переместить курсор мыши над ним,
выбрать другой элемент из списка (тем самым изменяя текст в
метке) и затем сместить курсор мыши с элемента управления
(позволяя метке вернуться к своему обычному виду)
DropShadowExtender
Этот расширитель добавляет графический эффект падающей
тени вокруг панели. Падающая тень может быть частично
прозрачной, и при этом можно управлять размером и степенью
скругления ее углов
DynamicPopulateExtender
Этот простой расширитель заменяет содержимое элемента
управления результатом вызова метода веб-службы
45. http://www.slideshare.net/IgorShkulipa 45
Расширители ASP.NET AJAX Control Toolkit
FilteredTextBoxExtender
Этот расширитель позволяет запретить ввод определенных
символов в текстовом поле (например, букв в текстовом поле,
которое содержит числовые данные). Он предназначен для
дополнения проверки достоверности, а не ее замены, поскольку
злоумышленники могут обойти фильтрацию, изменяя
визуализированную страницу или отключая JavaScript в браузере
HoverMenuExtender
Этот расширитель позволяет отображать содержимое во
всплывающем окне рядом с элементом управления, когда
пользователь задерживает курсор мыши над ним
ListSearchExtender
Этот расширитель позволяет пользователю искать элементы в
ListBox или DropDownList, вводя первые несколько букв текста
элемента. Элемент управления ищет элементы и переходит к
первому соответствию, по мере того как пользовательские вводит
текст
MaskedEditExtender
Этот расширитель ограничивает вид допустимого ввода в
текстовом поле с использованием маски. (Маска - это строка,
которая определяет модель текста фиксированной длины и
предоставляет готовые символы для облегчения пользователю
ввода. Например, маска телефонного номера может отображать в
текстовом поле набор символов "(___)___-____". По мере того как
пользователь выполняет ввод, заполнители заменяются
допустимыми цифрами, а нечисловые символы отклоняются.)
MaskedEditExtender можно применять в сочетании с
MaskedEditValidator, гарантируя, что пользователь не сможет
обойти код JavaScript и ввести недопустимое значение
ModalPopupExtender
Этот расширитель позволяет создавать иллюзию модального
диалогового окна, затемняя страницу, отключая элементы
управления и отображая наложенную панель поверх них
46. http://www.slideshare.net/IgorShkulipa 46
Расширители ASP.NET AJAX Control Toolkit
MultiHandleSliderExtender
Этот расширитель преобразует обычный элемент управления
TextBox в ползунок. Однако этот ползунок обладает функциями,
которые выходят за рамки его стандартного серверного
эквивалента ASP.NET. Наиболее примечательно то, что
поддерживается несколько ползунков, которые могут
перетаскиваться вдоль дорожки независимо друг от друга. Это
полезно, когда ползунок предназначен для указания диапазона
значений
MutuallyExclusiveCheckBoxEx
tender
Этот расширитель позволяет связывать "ключ" с несколькими
элементами управления CheckBox. Когда пользователь щелкает на
флажке, который расширен подобным образом, отметка с любого
другого флажка с тем же самым ключом снимается автоматически
NumericUpDownExtender
Этот расширитель присоединяется к текстовому полю, чтобы
обеспечить конфигурируемые кнопки стрелок вверх и вниз
(справа от него). Эти кнопки увеличивают числовое значение или
значение даты в текстовом поле
PagingBulletedListExtender
Этот расширитель присоединяется к элементу управления
BulletedList и придает ему возможности разбиения на страницы на
стороне клиента, что позволяет разделить длинный список на
меньшие разделы
PasswordStrength
Этот расширитель присоединяется к текстовому полю. По мере
ввода он ранжирует криптографическую надежность значения
текстового поля (чем выше показатель, тем большую трудность
пароль представляет для взлома). Этот расширитель предназначен
для использования в качестве ориентира для поля создания
пароля
PopupControlExtender
Этот расширитель предоставляет всплывающее содержимое,
которое может отображаться рядом с любым элементом
управления
47. http://www.slideshare.net/IgorShkulipa 47
Расширители ASP.NET AJAX Control Toolkit
ResizableControlExtender
Этот расширитель позволяет пользователю изменять размеры элемента
управления с помощью конфигурируемого маркера, который отображается
в нижнем правом углу
RoundedCornersExtender
Этот расширитель скругляет углы любого элемента управления, придавая
ему аккуратный, профессиональный внешний вид
SliderExtender
Этот расширитель преобразует текстовое поле в графический ползунок,
который позволяет пользователю выбирать числовое значение,
перетаскивая ползунок в позицию на дорожке
SlideShowExtender
Этот расширитель присоединяется к изображению, заставляя его выводить
на экран последовательность изображений. Изображения
предоставляются посредством метода веб-службы, и показ слайдов может
выполняться в бесконечном цикле или с применением созданных кнопок
воспроизведения, паузы и перехода к предыдущему или следующему
изображению
TextBoxWatermarkExtend
er
Этот расширитель позволяет автоматически изменять цвет фона и
предоставлять определенный текст, когда элемент управления TextBox
пуст. Например, текстовое поле могло бы включать светло-серый текст
"Введите значение на бледно-синем фоне". Этот текст исчезает, когда
курсор помещается в текстовое поле или немедленно после ввода
значения
ToggleButtonExtender
Этот расширитель превращает обычный элемент управления CheckBox из
ASP.NET во флажок с изображением
UpdatePanelAnimationExt
ender
Этот расширитель позволяет использовать те же анимации, что и
AnimationExtender. Однако он предназначен для работы с элементом
управления UpdatePanel и автоматического выполнения этих анимаций,
когда обновление находится в состоянии выполнения или как только
панель была обновлена
ValidatorCalloutExtender
Расширяет логику клиентской стороны элементов управления проверкой
достоверности ASP.NET, чтобы они использовали всплывающие выноски
проверки достоверности, которые указывают на элемент управления с
недопустимым вводом
48. http://www.slideshare.net/IgorShkulipa 48
Элементы управления ASP.NET AJAX Control Toolkit
Имя Описание
Accordion
Этот элемент управления укладывает несколько панелей содержимого друг
поверх друга и позволяет их просматривать по одной. При щелчке панель
развертывается, а другие панели сворачиваются (оставляя видимым только
заголовок). Дополнительные функции включают автоматическое затухание
и опцию ограничения размера элемента управления (в этом случае
большие области содержимого, когда они видимы, используют прокрутку)
AsyncFileUpload
Этот элемент управления подобен веб-элементу управления FileUpload, за
исключением того, что он выполняет его работу асинхронно, разрешая
пользователю продолжить взаимодействовать со страницей. (Очевидно, что
обратная отправка страницы или переход к новой странице прервут
асинхронную передачу файлов.) Элемент управления AsyncFileUpload
может быть также сконфигурирован для отображения другого элемента
управления во время загрузки. Обычно этот второй элемент управления
(на который ссылается свойство ThrobberID) отображает простую
анимацию, что ставит пользователя в известность о продолжении
выполнения загрузки
ComboBox
Этот элемент управления был создан по примеру поля со списком Windows,
которое предоставляет раскрывающийся список (подобный элементу
управления DropDownList ASP.NET) и позволяет пользователю вводить
произвольный текст (как элемент управления TextBox в ASP.NET). Он
воспринимает многие элементы интерфейса программирования и
большинство соглашений своего Windows-аналога
Editor
Этот удивительно мощный элемент управления предоставляет средства
редактирования HTML-разметки, а также панель инструментов команд.
Пользователь может переключиться между тремя представлениями: Html
(которое отображает код разметки), Design (отображающее корректно
визуализированное представление, подобно текстовому процессору) и
Preview (которое аналогично Design, но без возможности редактирования)
49. http://www.slideshare.net/IgorShkulipa 49
Элементы управления ASP.NET AJAX Control Toolkit
NoBot
Этот элемент управления выполняет несколько проверок, пытаясь выяснить, не
осуществляет ли доступ к странице автоматизированная программа (робот), а не
человек. Если NoBot решит, что доступ к странице производится роботом, запрос
будет отклонен. Это позволяет предотвратить выполнение программ, которые
крадут содержимое или отправляют в блог спам-комментарии, хотя, понятно, его
можно обойти.
Например, NoBot вынуждает браузер выполнить вычисление с помощью
JavaScript, которое использует HTML DOM, и передает результат,
предназначенный для выявления обращений к странице, инициированных не
браузером. NoBot может также отклонять запросы, которые выполняют обратную
отправку формы слишком быстро или повторяют ее слишком часто в течение
определенного интервала. Оба эти вида поведения наводят на мысль, что
действует автоматизированная программа, а не человек
Rating
Этот элемент управления позволяет пользователям устанавливать рейтинг,
перемещая курсор мыши над последовательностью значков звездочек, пока не
будет выделено требуемое их количество
ReorderList
Этот элемент управления создает шаблонный список с возможностью прокрутки,
который позволяет пользователю изменять порядок следования пунктов,
перетаскивая их
Seadragon
Этот усовершенствованный элемент управления позволяет пользователю в
широких пределах масштабировать изображение, поддерживающее очень
большое увеличение, В действительности эти изображения составлены из серии
намного меньших мозаичных фрагментов, управление которыми производится на
веб-сервере. Для создания изображения Seadragon нужен бесплатный инструмент
Deep Zoom Compose. Следует также отметить, что эти увеличиваемые
изображения являются значительно более громоздким средством, чем встроенное
в Silverlight
TabContainer
Этот элемент управления напоминает вкладки, отображаемые в Windows. Каждая
вкладка имеет заголовок, и пользователь переходит от одной вкладки к другой,
щелкая на заголовках