SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Темы лекции: ASP.NET. Web Forms. Часть 3.
Практическое задание: ASP.NET. Web Forms.
Тренер: Игорь Шкулипа, к.т.н.
Разработка Веб-приложений на платформе
Microsoft .NET Framework.
Занятие 7
http://www.slideshare.net/IgorShkulipa 2
ASP.NET Web Parts
С помощью ASP.NET Web Parts Framework легко создавать собственные
пользовательские веб-страницы. Эта платформа состоит из элементов управления
и компонентов, которые выполняют:
• Определение настраиваемых разделов.
Платформа позволяет структурировать страницу и указывать настраиваемые
разделы страницы через так называемые зоны веб-частей.
• Предоставление компонентов для выбора элементов.
В дополнение к настраиваемым разделам платформа поставляется со
специальными готовыми разделами, позволяющими редактировать свойства
информационных элементов, отображаемых на странице, или добавлять и удалять
элементы информации на странице.
• Настройка веб-страницы.
Как только пользователь зарегистрировался в приложении, он может настроить
веб-страницу, перетаскивая отображенные элементы по разным настраиваемым
разделам. Пользователь может даже закрыть или свернуть содержимое, чтобы
освободить больше места для другого, более интересного содержимого.
• Сохранение настроенного внешнего вида.
ASP.NET автоматически сохраняет персонализированный внешний вид веб-
страницы с помощью инфраструктуры персонализации.
Страница, использующая эту платформу, называется страницей веб-частей, а
информационные элементы, которые могут отображаться на странице - веб-
частями.
http://www.slideshare.net/IgorShkulipa 3
Создание веб-частей
• Создание страницы.
• Добавление элемента управления WebPartManager.
• Добавление элементов управления WebPartZone.
Каждый раздел на странице, который должен отображать специальные
веб-части, инкапсулируется в экземпляр элемента управления
WebPartZone.
• Добавление веб-частей.
Можно применять простые пользовательские элементы управления,
готовые пользовательские элементы управления, специальные
серверные элементы управления либо элементы управления,
унаследованные непосредственно от класса WebPart.
• Добавление предварительно построенных зон и частей.
Если пользователь желает добавлять или удалять веб-части во время
выполнения либо редактировать свойства веб-частей, к веб-странице
понадобится добавить предварительно построенные готовые зоны,
такие как CatalogZone, которая дает возможность пользователю
добавлять веб-части на страницу.
http://www.slideshare.net/IgorShkulipa 4
Элементы управления WebPartManager и WebPartZones
Элемент WebPartManager работает со всеми добавленными н веб-
странице зонами и знает обо всех доступных веб-частях страницы. Он
управляет персонализацией и обеспечивает настройку веб-страницы
для текущего зарегистрированного пользователя.
Элемент управления WebPartManager также генерирует исключения,
которые можно перехватывать в своих приложениях для выполнения
необходимых действий, когда пользователь добавляет или удаляет
веб-часть, либо когда одна веб-часть взаимодействует с другой веб-
частью.
После помещения на страницу элемента WebPartManager можно
добавлять настраиваемые разделы. Такие разделы называются зонами
веб-частей (WebPartZones), и каждая зона может содержать столько
веб-частей, сколько необходимо пользователю.
http://www.slideshare.net/IgorShkulipa 5
Пример. Пользовательский элемент. WebPart1.ascx
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="WebPart1.ascx.cs"
Inherits="WFApplication1.WebPart11" %>
<body>
<div>
Hello, Web Parts!!!
</div>
</body>
http://www.slideshare.net/IgorShkulipa 6
Пример. WebParts.aspx
<%@ Page Title="" Language="C#"
MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="WebParts.aspx.cs«
Inherits="WFApplication1.WebParts" %>
<%@ Register Src="~/WebPart1.ascx" TagName="WebPart1" TagPrefix="control" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<table style="width: 100%">
<tr style="vertical-align: top">
<td style="width: 20%"></td>
<td style="width: 60%">
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<control:WebPart1 ID="WebPart1ID" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
</td>
<td style="width: 20%"></td>
</tr>
</table>
</asp:Content>
http://www.slideshare.net/IgorShkulipa 7
Результат
http://www.slideshare.net/IgorShkulipa 8
Уровни безопасности
В основном, для большей части веб-приложений основные задачи для
реализации защиты, всегда одни и те же:
• Аутентификация
• Авторизация
• Конфиденциальность
• Целостность
ASP.NET включает базовую инфраструктуру для выполнения
аутентификации и авторизации. Библиотека базовых классов .NET
Framework включает ряд классов в пространстве имен
System.Security, которые предназначены для шифрования и подписи
данных.
http://www.slideshare.net/IgorShkulipa 9
Аутентификация
Аутентификация - процесс определения идентичности пользователя и
обеспечения гарантий этой идентичности. Процесс аутентификации
аналогичен регистрации пользователей. Как только идентичность
установлена, маркер подтверждает ее, так что куда бы вы ни пошли в
пределах конкретной области, ваша личность будет известной.
В приложениях ASP.NET аутентификация реализуется одной из следующих
возможных аутентифицирующих систем:
• аутентификация Windows
• аутентификация с помощью форм
• специальный процесс аутентификации
Идентичность пользователя отслеживается разными способами, в зависимости
от типа аутентификации.
Например, операционная система Windows использует 96-битное число,
называемое SID (security identifier - идентификатор безопасности) для
идентификации каждого входящего пользователя.
При аутентификации с помощью форм ASP.NET пользователю выдается
аутентифицирующий мандат формы, представляющий собой комбинацию
значений, которые шифруются и помещаются в cookie-набор.
http://www.slideshare.net/IgorShkulipa 10
Авторизация
Авторизация - это процесс определения прав и ограничений,
назначенных аутентифицированному пользователю. Авторизация - это
процесс выдачи допуска на определенные ресурсы, например, на
главную страницу.
В веб-приложениях разные типы авторизации происходят на разных
уровнях. Например, на самом верхнем уровне код может проверять
идентичность пользователя и решать, можно ли продолжать данную
операцию. На нижнем уровне можно настроить ASP.NET так, чтобы
запрещать доступ к определенным веб-страницам или каталогам для
определенных пользователей или ролей. На еще более низком уровне,
когда код выполняет различные задачи - такие как подключение к
базе данных, открытие файла записи в журнал событий и т.п. -
операционная система Windows проверяет права учетной записи
Windows, от имени которой выполняется данный код.
http://www.slideshare.net/IgorShkulipa 11
Конфиденциальность и целостность
Конфиденциальность означает обеспечение невидимости данных для
неавторизованных пользователей во время передачи их по сети или
сохранении в хранилищах, таких как базы данных.
Целостность - это обеспечение невозможности изменения данных никем
во время передачи по сети или сохранения в хранилище. И то, и
другое основано на шифровании.
Шифрование - процесс кодирования данных, делающий невозможным их
чтение другими пользователями. Шифрование в ASP.NET является
средством, полностью отделенным от аутентификации, авторизации и
заимствования прав. Его можно применять в комбинации с этими
средствами либо самостоятельно.
http://www.slideshare.net/IgorShkulipa 12
Получение доступа к странице
По умолчанию анонимные пользователи могут обращаться к любой странице
ASP.NET. Но когда пользователь запрашивает веб-страницу, анонимный доступ к
которой закрыт, выполняется несколько шагов:
• Запрос отправляется веб-серверу.
• Пользователь предоставляет свое «удостоверение», которое затем
верифицируется - либо вашим приложением (в случае аутентификации с
помощью форм), либо автоматически средствами IIS (в случае аутентификации
Windows).
• Если удостоверение пользователя подтверждается, ему предоставляется доступ
к веб-странице. Если же оно оценивается как нелегитимное, ему предлагается
повторить попытку регистрации, либо же выполняется переадресация на
страницу с сообщением о закрытии доступа.
http://www.slideshare.net/IgorShkulipa 13
Получение доступа к защищенной странице
Когда пользователь запрашивает защищенную веб-страницу, которая открыта
только для определенных пользователей или ролей, процесс аналогичен, но
добавляется дополнительный шаг:
• Предыдущие пункты
• Удостоверение или роли аутентифицированного пользователя сравниваются со
списком разрешенных пользователей и ролей. Если пользователь присутствует
в списке, ему открывается доступ к ресурсу, в противном случае доступ будет
закрыт.
• Пользователи, которым отказано в доступе, либо приглашаются на повторную
регистрацию, либо перенаправляются на веб-страницу с сообщением о закрытии
доступа.
http://www.slideshare.net/IgorShkulipa 14
Аутентификация с помощью форм
Аутентификация с помощью форм - это система аутентификации общего
назначения, основанная на двух концепциях.
• Первая из них - страница входа (login page), которая может
удостоверить действительность пользователей (обычно сверяя
комбинацию имени и пароля с базой данных или другим хранилищем
данных).
• Вторая - это механизм предохранения и восстановления
контекста безопасности при каждом запросе (обычно с
применением cookie-набора). Таким образом, пользователю
понадобится войти только один раз.
Аутентификация с помощью форм основана на билетах (также
называемых маркерами). Это значит, что когда пользователь
регистрируется, он получает так называемый билет с базовой
информацией о себе. Информация сохраняется в зашифрованном
cookie-наборе, который присоединяется к ответу, так что
автоматически отправляется в каждом последующем запросе.
Аутентификация с помощью форм инкапсулирована в виде класса
FormsAuthentication.
http://www.slideshare.net/IgorShkulipa 15
Аутентификация с помощью форм
http://www.slideshare.net/IgorShkulipa 16
Преимущества АсПФ
• Контроль над кодом аутентификации
Поскольку аутентификация с помощью форм реализована полностью внутри
ASP.NET, вы получаете полный контроль над выполнением аутентификации.
Вам не нужно полагаться ни на какую внешнюю систему, как это имеет место
при аутентификации Windows.
• Контроль над внешним видом формы входа
Вы имеете ту же степень контроля над внешним видом аутентификации с
помощью форм, что и над ее функциональностью.
• Работа с любым браузером
Аутентификация с помощью форм использует в качестве пользовательского
интерфейса стандартный HTML, так что все браузеры могут его обработать.
• Хранение информации о пользователях
Аутентификация с помощью форм по умолчанию хранит пользователей в файле
web.config, но эту информацию можно хранить где угодно. Для этого
понадобится только написать код, который обращается к хранилищу данных и
извлекает информацию о пользователях.
• Гибкость в хранении информации о пользователях также означает возможность
контроля над созданием и администрированием пользовательских
учетных записей, а также присоединения дополнительной информации к этим
учетным записям, такой как персональные предпочтения по настройке внешнего
вида веб-сайта
http://www.slideshare.net/IgorShkulipa 17
Недостатки АсПФ
• Вы должны самостоятельно создавать пользовательский интерфейс
для регистрации пользователей. Можно либо целиком создать
собственную страницу входа, либо использовать элементы управления
безопасностью ASP.NET.
• Вы должны самостоятельно поддерживать каталог удостоверений
пользователей.
• Вы должны самостоятельно предпринимать дополнительные
предосторожности против вмешательства в сетевой трафик.
http://www.slideshare.net/IgorShkulipa 18
Классы платформы аутентификации с помощью форм
Имя класса Описание
FormsAuthentication
Основной класс для взаимодействия с инфраструктурой
аутентификации с помощью форм. Он предоставляет
базовую информацию о конфигурации и позволяет
создавать билет, устанавливать cookie-наборы и
перенаправлять со страницы входа на исходную
запрошенную страницу в случае успешной проверки
удостоверения пользователя
FormsAuthenticationEventArgs
FormsAuthenticationEventArgs инициирует событие
Authenticate, которое можно перехватить. Соглашения о
передаваемых аргументах события инкапсулируются в
экземпляре этого класса. Содержит базовую информацию
об аутентифицированном пользователе
FormsAuthenticationTicket
Этот класс предоставляет информацию о пользователе,
которая будет зашифрована и помещена в cookie-набор
аутентификации
FormsIdentity
Этот класс реализует интерфейс IIdentity и является
специфичным для аутентификации с помощью форм.
Ключевым дополнением класса FormsIdentity, кроме
членов, необходимых для реализации интерфейса
IIdentity, является свойство Ticket, представляющее билет
аутентификации. Это позволяет сохранять и извлекать
дополнительную информацию из билета
FormsAuthenticationModule
Ядро инфраструктуры аутентификации с помощью форм,
устанавливающее контекст безопасности и выполняющее
при необходимости автоматическое перенаправление на
страницу входа
http://www.slideshare.net/IgorShkulipa 19
Пример. Login.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="Login.aspx.cs"
Inherits="WFApplication1.Login" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent"
runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent"
runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent«
runat="server">
<asp:TextBox ID="LoginTB" runat="server" AutoPostBack="true"/>
<asp:TextBox ID="PassTB" runat="server" TextMode="Password"/>
<asp:Button ID="LoginBTN" runat="server" Text="Login"
OnClick="LoginBTN_Click"/>
</asp:Content>
http://www.slideshare.net/IgorShkulipa 20
Пример. Login.aspx.cs
public partial class Login : System.Web.UI.Page
{
protected void LoginBTN_Click(object sender, EventArgs e)
{
//Перед этим стоило бы сделать проверку авторизации...
FormsAuthentication.RedirectFromLoginPage(LoginTB.Text, true);
}
}
http://www.slideshare.net/IgorShkulipa 21
Пример. Web.config
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
http://www.slideshare.net/IgorShkulipa 22
Результат
http://www.slideshare.net/IgorShkulipa 23
Результат
http://www.slideshare.net/IgorShkulipa 24
Membership API
Платформа Membership API предоставляет полный набор готовых функций управления
пользователями:
• Возможность создавать и удалять пользователей - как программно, так и с помощью
веб-утилиты конфигурирования ASP.NET.
• Возможность переустановки паролей с автоматической отправкой пользователям
новых паролей по электронной почте, если известен адрес электронной почты данного
пользователя.
• Возможность автоматической генерации паролей для пользователей, если
пользователи создаются автоматически в фоновом режиме.
• Возможность нахождения пользователей в лежащем в основе хранилище данных,
а также извлечения списков пользователей и подробной информации о каждом их них.
• Набор предварительно разработанных элементов управления для создания страниц
входа и регистрации, а также для отображения состояния входа в различных
представлениях для аутентифицированных и не аутентифицированных пользователей.
• Уровень абстракции, который обеспечивает независимость приложений от
конкретного лежащего в основе хранилища данных через классы поставщиков
членства. Любая функциональность, перечисленная выше, работает совершенно
независимо от конкретного используемого хранилища данных, и одни хранилища данных
можно заменять на другие - совершенно без необходимости в какой-либо модификации
приложений. По умолчанию Membership API полагается на базу данных SQL Server Express
для хранения информации о пользователях и ролях.
http://www.slideshare.net/IgorShkulipa 25
Архитектура Membership API
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 свойства
http://www.slideshare.net/IgorShkulipa 27
Элементы управления безопасностью
Платформа ASP.NET поставляется с множеством элементов управления, которые упрощают
построение, например, страниц входа, а также связанных с ними страниц
Элемент
управления
Описание
Login
Составной элемент управления, который решает наиболее общую задачу в
приложениях, основанных на аутентификации с помощью форм - отображает
текстовые поля для ввода имени пользователя и пароля, а также кнопку входа.
LoginStatus
Простой элемент управления, проверяющий состояние аутентификации текущего
сеанса. Если пользователь не аутентифицирован, он предлагает кнопку входа для
перенаправления на сконфигурированную страницу входа. В противном случае
отображает кнопку выхода, обеспечивая возможность выхода из приложения.
Этот элемент инкапсулирует поведение, которое обычно должно быть доступно на
всех страницах. Поэтому его очень удобно размещать на мастер-странице.
LoginView
Элемент управления, который дает возможность отображать разные наборы
элементов управления для аутентифицированных и неаутентифицированных
пользователей.
PasswordRecovery Позволяет пользователю извлечь пароль, если при регистрации был указан его
адрес электронной почты.
ChangePassword Составной элемент управления, который запрашивает старый пароль
пользователя и позволяет ему ввести и подтвердить новый пароль.
CreateUserWizard Включает полный мастер, который проводит пользователя (или администратора)
через процесс создания нового пользователя.
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 для проверки введенных удостоверений и
аутентификации пользователей.
http://www.slideshare.net/IgorShkulipa 29
Настройка Membership API
Все шаги по конфигурированию за исключением настройки поставщика можно
выполнить с помощью ASP.NET WAT (Web Site Administration Tool - инструмент
администрирования веб-сайтов), в состав которого входит мастер настройки
безопасности.
http://www.slideshare.net/IgorShkulipa 30
Пример. Настройка SQL Express
http://www.slideshare.net/IgorShkulipa 31
Пример. Login.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="Login.aspx.cs"
Inherits="WFApplication1.Login" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent"
runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent"
runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent«
runat="server">
<asp:TextBox ID="LoginTB" runat="server" AutoPostBack="true"/>
<asp:TextBox ID="PassTB" runat="server" TextMode="Password"/>
<asp:Button ID="LoginBTN" runat="server" Text="Login"
OnClick="LoginBTN_Click"/>
<br/>
<asp:Label ID="LabelResult" runat="server"></asp:Label>
</asp:Content>
http://www.slideshare.net/IgorShkulipa 32
Пример. Login.aspx.cs
public partial class Login : System.Web.UI.Page
{
protected void LoginBTN_Click(object sender, EventArgs e)
{
if (Membership.ValidateUser(LoginTB.Text, PassTB.Text))
{
LabelResult.Text = "Loged In";
}
else
{
LabelResult.Text = "Failed";
}
}
}
http://www.slideshare.net/IgorShkulipa 33
Пример. Web.config
http://www.slideshare.net/IgorShkulipa 34
Результат
http://www.slideshare.net/IgorShkulipa 35
Элементы управления проверки достоверности
В состав ASP.NET входит элементы управления проверкой достоверности. Эти
элементы выполняют за разработчика приличную часть сложной работы,
упрощая процесс проверки и избавляя от необходимости писать длинный код. :
• RequiredFieldValidator
Контролирует, не пуст ли проверяемый элемент управления.
• RangeValidator
Контролирует, находится ли значение связанного элемента управления в
пределах определенного диапазона.
• CompareValidator
Контролирует, соответствует ли значение данного элемента управления
определенной операции сравнения (больше, меньше и т.д.) с другой
константой или значением элемента управления
• RegularExpressionValidator
Контролирует, соответствует ли значение данного элемента управления
определенному регулярному выражению
• CustomValidator
Позволяет определить любую клиентскую или серверную операцию проверки
достоверности JavaScript для выполнения собственной логики проверки
достоверности
• ValidationSummary
Отображает итоговую информацию с сообщениями об ошибках для каждого
давшего сбой элемента управления
http://www.slideshare.net/IgorShkulipa 36
Элемент управления RegularExpressionValidator
Элемент управления RegularExpressionValidator является одним из
самых мощных средств в наборе инструментов разработчика
приложений ASP.NET. Он позволяет проверять текст путем
сопоставления с образцом, определенным в регулярном выражении.
От разработчика требуется всего лишь установить это регулярное
выражение в свойстве ValidationExpression.
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 символов (подобно
примеру пароля), но позволяет использовать специальные
символы (звездочки, амперсанды и т.д.)
http://www.slideshare.net/IgorShkulipa 38
Пример. Login.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="Login.aspx.cs" Inherits="WFApplication1.Login" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
<asp:RegularExpressionValidator runat="server" ID="LoginValidator"
ControlToValidate="LoginTB" ValidationExpression="S{4,5}"
ErrorMessage="Incorrect Login" Display="dynamic">
Input Correct Login
</asp:RegularExpressionValidator>
<asp:TextBox ID="LoginTB" runat="server" OnTextChanged="LoginTB_TextChanged"
AutoPostBack="true"/>
<asp:TextBox ID="PassTB" runat="server" TextMode="Password"/>
<asp:Button ID="LoginBTN" runat="server" Text="Login" OnClick="LoginBTN_Click"/>
<br/>
<asp:Label ID="LabelResult" runat="server"></asp:Label>
</asp:Content>
http://www.slideshare.net/IgorShkulipa 39
Результат
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.
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 является бесплатным и включает полный исходный код.
http://www.slideshare.net/IgorShkulipa 42
Установка инструментария ASP.NET AJAX Control Toolkit
http://www.slideshare.net/IgorShkulipa 43
Расширители ASP.NET AJAX Control Toolkit
Имя Описание
AlwaysVisibleControlExtender
Этот расширитель фиксирует элемент управления в
определенной позиции (например, в верхнем левым углу веб-
страницы) даже при прокрутке содержимого страницы
AnimationExtender
Этот мощный и удивительно гибкий расширитель позволяет
добавлять анимационные эффекты, такие как изменение
размеров, перемещение, затухание, изменение цвета и многие
другие, по отдельности или в комбинации друг с другом
AutoCompleteExtender
Этот расширитель позволяет предоставлять список
предложенных записей на основе частичного ввода данных
пользователем. Список записей генерируется методом веб-
службы, как описано в предыдущем разделе
CalendarExtender
Этот расширитель отображает всплывающий календарь,
который может быть присоединен к текстовому полю для
облегчения ввода даты. Когда пользователь выбирает дату,
она вставляется в присоединенный элемент управления
CascadingDropDown
Этот расширитель позволяет присоединять раскрывающиеся
списки, не прибегая к кодированию решения вручную
CollapsiblePanelExtender
Этот расширитель позволяет сворачивать и разворачивать
панели на странице. Остальная часть содержимого страницы
обтекает их автоматически
ColorPickerExtender
Этот расширитель отображает всплывающий инструмент для
выбора цвета, который может быть присоединен к текстовому
полю для облегчения выбора цвета
http://www.slideshare.net/IgorShkulipa 44
Расширители ASP.NET AJAX Control Toolkit
ColorPickerExtender
Этот расширитель отображает всплывающий инструмент для
выбора цвета, который может быть присоединен к текстовому
полю для облегчения выбора цвета
ConfirmButtonExtender
Этот расширитель перехватывает щелчки на элементах
управления Button, LinkButton или ImageButton и выводит на
экран подтверждающее сообщение. Событие щелчка
подавляется, если пользователь решает отменить действие в
диалоговом окне подтверждения
DragPanelExtender Этот расширитель позволяет перетаскивать панель по странице
DropDownExtender
Этот расширитель превращает практически любой элемент
управления в раскрывающийся, когда курсор мыши помещается
поверх него. Например, DropDownExtender можно использовать в
сочетании с обычным элементом управления Label. Тогда
пользователь сможет переместить курсор мыши над ним,
выбрать другой элемент из списка (тем самым изменяя текст в
метке) и затем сместить курсор мыши с элемента управления
(позволяя метке вернуться к своему обычному виду)
DropShadowExtender
Этот расширитель добавляет графический эффект падающей
тени вокруг панели. Падающая тень может быть частично
прозрачной, и при этом можно управлять размером и степенью
скругления ее углов
DynamicPopulateExtender
Этот простой расширитель заменяет содержимое элемента
управления результатом вызова метода веб-службы
http://www.slideshare.net/IgorShkulipa 45
Расширители ASP.NET AJAX Control Toolkit
FilteredTextBoxExtender
Этот расширитель позволяет запретить ввод определенных
символов в текстовом поле (например, букв в текстовом поле,
которое содержит числовые данные). Он предназначен для
дополнения проверки достоверности, а не ее замены, поскольку
злоумышленники могут обойти фильтрацию, изменяя
визуализированную страницу или отключая JavaScript в браузере
HoverMenuExtender
Этот расширитель позволяет отображать содержимое во
всплывающем окне рядом с элементом управления, когда
пользователь задерживает курсор мыши над ним
ListSearchExtender
Этот расширитель позволяет пользователю искать элементы в
ListBox или DropDownList, вводя первые несколько букв текста
элемента. Элемент управления ищет элементы и переходит к
первому соответствию, по мере того как пользовательские вводит
текст
MaskedEditExtender
Этот расширитель ограничивает вид допустимого ввода в
текстовом поле с использованием маски. (Маска - это строка,
которая определяет модель текста фиксированной длины и
предоставляет готовые символы для облегчения пользователю
ввода. Например, маска телефонного номера может отображать в
текстовом поле набор символов "(___)___-____". По мере того как
пользователь выполняет ввод, заполнители заменяются
допустимыми цифрами, а нечисловые символы отклоняются.)
MaskedEditExtender можно применять в сочетании с
MaskedEditValidator, гарантируя, что пользователь не сможет
обойти код JavaScript и ввести недопустимое значение
ModalPopupExtender
Этот расширитель позволяет создавать иллюзию модального
диалогового окна, затемняя страницу, отключая элементы
управления и отображая наложенную панель поверх них
http://www.slideshare.net/IgorShkulipa 46
Расширители ASP.NET AJAX Control Toolkit
MultiHandleSliderExtender
Этот расширитель преобразует обычный элемент управления
TextBox в ползунок. Однако этот ползунок обладает функциями,
которые выходят за рамки его стандартного серверного
эквивалента ASP.NET. Наиболее примечательно то, что
поддерживается несколько ползунков, которые могут
перетаскиваться вдоль дорожки независимо друг от друга. Это
полезно, когда ползунок предназначен для указания диапазона
значений
MutuallyExclusiveCheckBoxEx
tender
Этот расширитель позволяет связывать "ключ" с несколькими
элементами управления CheckBox. Когда пользователь щелкает на
флажке, который расширен подобным образом, отметка с любого
другого флажка с тем же самым ключом снимается автоматически
NumericUpDownExtender
Этот расширитель присоединяется к текстовому полю, чтобы
обеспечить конфигурируемые кнопки стрелок вверх и вниз
(справа от него). Эти кнопки увеличивают числовое значение или
значение даты в текстовом поле
PagingBulletedListExtender
Этот расширитель присоединяется к элементу управления
BulletedList и придает ему возможности разбиения на страницы на
стороне клиента, что позволяет разделить длинный список на
меньшие разделы
PasswordStrength
Этот расширитель присоединяется к текстовому полю. По мере
ввода он ранжирует криптографическую надежность значения
текстового поля (чем выше показатель, тем большую трудность
пароль представляет для взлома). Этот расширитель предназначен
для использования в качестве ориентира для поля создания
пароля
PopupControlExtender
Этот расширитель предоставляет всплывающее содержимое,
которое может отображаться рядом с любым элементом
управления
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, чтобы они использовали всплывающие выноски
проверки достоверности, которые указывают на элемент управления с
недопустимым вводом
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, но без возможности редактирования)
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. Каждая
вкладка имеет заголовок, и пользователь переходит от одной вкладки к другой,
щелкая на заголовках
http://www.slideshare.net/IgorShkulipa 50
Пример. Site.Master
<%@ Register TagPrefix="ajaxToolkit" Namespace="AjaxControlToolkit"
Assembly="AjaxControlToolkit" %>
<ajaxToolkit:ToolkitScriptManager runat="server">
<Scripts>
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="jquery.ui.combined" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web"
Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web"
Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web"
Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web"
Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web"
Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web"
Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web"
Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web"
Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
<%--Site Scripts--%>
</Scripts>
</ajaxToolkit:ToolkitScriptManager>
http://www.slideshare.net/IgorShkulipa 51
Пример. Login.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="Login.aspx.cs" Inherits="WFApplication1.Login" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
<ajaxToolkit:CalendarExtender ID="Calendar1" runat="server"
TargetControlID="LoginTB" Animated="true" >
</ajaxToolkit:CalendarExtender>
<asp:TextBox ID="LoginTB" runat="server" OnTextChanged="LoginTB_TextChanged“
AutoPostBack="true"/>
<asp:TextBox ID="PassTB" runat="server" TextMode="Password"/>
<asp:Button ID="LoginBTN" runat="server" Text="Login" OnClick="LoginBTN_Click"/>
<br/>
<asp:Label ID="LabelResult" runat="server"></asp:Label>
</asp:Content>
http://www.slideshare.net/IgorShkulipa 52
Результат
http://www.slideshare.net/IgorShkulipa 53
Лабораторная работа №7.
К лабораторной работе №6 добавить возможность авторизации,
валидацию ввода в форму и элементы AJAX Toolkit

Contenu connexe

Tendances

#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...JSib
 
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.Igor Shkulipa
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.Igor Shkulipa
 
C# Web. Занятие 06.
C# Web. Занятие 06.C# Web. Занятие 06.
C# Web. Занятие 06.Igor Shkulipa
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Sergiy Shychynov
 
Vue.js - реактивный фронтенд фреймворк для людей
Vue.js - реактивный фронтенд фреймворк для людейVue.js - реактивный фронтенд фреймворк для людей
Vue.js - реактивный фронтенд фреймворк для людейKonstantin Komelin
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковРендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковDevDay
 
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.Igor Shkulipa
 
C# Web. Занятие 05.
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.Igor Shkulipa
 
Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekYa_Cheburek
 
Лекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, LoaderЛекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, LoaderАлександр Брич
 
Knockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-ОнлайнKnockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-Онлайн2ГИС Технологии
 
Как и зачем мы тестируем UI
Как и зачем мы тестируем UIКак и зачем мы тестируем UI
Как и зачем мы тестируем UIVyacheslav Lyalkin
 
Android - 13 - Database
Android - 13 - DatabaseAndroid - 13 - Database
Android - 13 - DatabaseNoveo
 
Role based access-control
Role based access-controlRole based access-control
Role based access-controlAlex Frolov
 
AngularJS basics & theory
AngularJS basics & theoryAngularJS basics & theory
AngularJS basics & theoryDevOWL Meetup
 
Плюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизниПлюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизниz-tech
 
Средства разработки web приложений (Web frameworks)
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)Fedor Malyshkin
 
Конкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteКонкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteEvernote
 

Tendances (20)

#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
 
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
 
C# Web. Занятие 06.
C# Web. Занятие 06.C# Web. Занятие 06.
C# Web. Занятие 06.
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4
 
Vue.js - реактивный фронтенд фреймворк для людей
Vue.js - реактивный фронтенд фреймворк для людейVue.js - реактивный фронтенд фреймворк для людей
Vue.js - реактивный фронтенд фреймворк для людей
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковРендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей Солодовников
 
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.
 
C# Web. Занятие 05.
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.
 
Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by Cheburek
 
Лекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, LoaderЛекция Android. БД SQLite, ContentProvider, Loader
Лекция Android. БД SQLite, ContentProvider, Loader
 
Knockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-ОнлайнKnockoutjs на примере 2ГИС-Онлайн
Knockoutjs на примере 2ГИС-Онлайн
 
Как и зачем мы тестируем UI
Как и зачем мы тестируем UIКак и зачем мы тестируем UI
Как и зачем мы тестируем UI
 
Android - 13 - Database
Android - 13 - DatabaseAndroid - 13 - Database
Android - 13 - Database
 
Role based access-control
Role based access-controlRole based access-control
Role based access-control
 
AngularJS basics & theory
AngularJS basics & theoryAngularJS basics & theory
AngularJS basics & theory
 
Плюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизниПлюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизни
 
Средства разработки web приложений (Web frameworks)
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)
 
Конкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteКонкурс для разработчиков от Evernote
Конкурс для разработчиков от Evernote
 
CodeFest dirty facts about AngularJS
CodeFest dirty facts about AngularJSCodeFest dirty facts about AngularJS
CodeFest dirty facts about AngularJS
 

En vedette

Production diary 14
Production diary 14Production diary 14
Production diary 14Laila Jaleel
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.Igor Shkulipa
 
Production diary 17
Production diary 17Production diary 17
Production diary 17Laila Jaleel
 
C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.Igor Shkulipa
 
C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.Igor Shkulipa
 
Modul 5 Oppgave 1
Modul 5 Oppgave 1Modul 5 Oppgave 1
Modul 5 Oppgave 1Ketilarm
 
Hebron NH Academy Building Presentation 02-17-15
Hebron NH Academy Building Presentation 02-17-15Hebron NH Academy Building Presentation 02-17-15
Hebron NH Academy Building Presentation 02-17-15hebronnhwebmaster
 
Modern Arabian Horse mag 2012 "Destination: Tulsa"
Modern Arabian Horse mag 2012 "Destination: Tulsa"Modern Arabian Horse mag 2012 "Destination: Tulsa"
Modern Arabian Horse mag 2012 "Destination: Tulsa"Janet de Acevedo Macdonald
 
Production diary 10
Production diary 10Production diary 10
Production diary 10Laila Jaleel
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.Igor Shkulipa
 
C++ Базовый. Занятие 05.
C++ Базовый. Занятие 05.C++ Базовый. Занятие 05.
C++ Базовый. Занятие 05.Igor Shkulipa
 
C# Desktop. Занятие 10.
C# Desktop. Занятие 10.C# Desktop. Занятие 10.
C# Desktop. Занятие 10.Igor Shkulipa
 
Production diary 11
Production diary 11Production diary 11
Production diary 11Laila Jaleel
 
C++ Базовый. Занятие 14.
C++ Базовый. Занятие 14.C++ Базовый. Занятие 14.
C++ Базовый. Занятие 14.Igor Shkulipa
 
Happily_Disconnected
Happily_DisconnectedHappily_Disconnected
Happily_DisconnectedAmber Perkins
 

En vedette (20)

Production diary 14
Production diary 14Production diary 14
Production diary 14
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
 
Production diary 17
Production diary 17Production diary 17
Production diary 17
 
C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.
 
C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.
 
Modul 5 Oppgave 1
Modul 5 Oppgave 1Modul 5 Oppgave 1
Modul 5 Oppgave 1
 
InPay OpenReaktor
InPay OpenReaktorInPay OpenReaktor
InPay OpenReaktor
 
psychiatry
psychiatrypsychiatry
psychiatry
 
Hebron NH Academy Building Presentation 02-17-15
Hebron NH Academy Building Presentation 02-17-15Hebron NH Academy Building Presentation 02-17-15
Hebron NH Academy Building Presentation 02-17-15
 
Modern Arabian Horse mag 2012 "Destination: Tulsa"
Modern Arabian Horse mag 2012 "Destination: Tulsa"Modern Arabian Horse mag 2012 "Destination: Tulsa"
Modern Arabian Horse mag 2012 "Destination: Tulsa"
 
assignment
assignmentassignment
assignment
 
Production diary 10
Production diary 10Production diary 10
Production diary 10
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
 
C++ Базовый. Занятие 05.
C++ Базовый. Занятие 05.C++ Базовый. Занятие 05.
C++ Базовый. Занятие 05.
 
C# Desktop. Занятие 10.
C# Desktop. Занятие 10.C# Desktop. Занятие 10.
C# Desktop. Занятие 10.
 
Production diary 11
Production diary 11Production diary 11
Production diary 11
 
C++ Базовый. Занятие 14.
C++ Базовый. Занятие 14.C++ Базовый. Занятие 14.
C++ Базовый. Занятие 14.
 
Updated Colorado Resume
Updated Colorado Resume Updated Colorado Resume
Updated Colorado Resume
 
Happily_Disconnected
Happily_DisconnectedHappily_Disconnected
Happily_Disconnected
 
Pest & Fumi-(Shiva Resume)
Pest & Fumi-(Shiva Resume)Pest & Fumi-(Shiva Resume)
Pest & Fumi-(Shiva Resume)
 

Similaire à C# Web. Занятие 07.

FFCMS - вводная для пользователя
FFCMS - вводная для пользователяFFCMS - вводная для пользователя
FFCMS - вводная для пользователяzenn1989
 
основные понятия Web сайта
основные понятия Web сайтаосновные понятия Web сайта
основные понятия Web сайтаkrabakraba
 
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)SkillFactory
 
C# Desktop. Занятие 08.
C# Desktop. Занятие 08.C# Desktop. Занятие 08.
C# Desktop. Занятие 08.Igor Shkulipa
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
 
Web deployment
Web deploymentWeb deployment
Web deploymentGetDev.NET
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NETVitaly Baum
 
Создание Adobe AIR клиента для социальных сетей на примере Twitter
Создание Adobe AIR клиента для социальных сетей на примере TwitterСоздание Adobe AIR клиента для социальных сетей на примере Twitter
Создание Adobe AIR клиента для социальных сетей на примере TwitterRostyslav Siryk
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиковWOX APP
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Artur Baranok
 
Система управления сайтом «1С-Битрикс» изнутри: работа с корпоративным сайтом
Система управления сайтом «1С-Битрикс» изнутри: работа с корпоративным сайтомСистема управления сайтом «1С-Битрикс» изнутри: работа с корпоративным сайтом
Система управления сайтом «1С-Битрикс» изнутри: работа с корпоративным сайтомborovoystudio
 
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesОсновные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesArtur Baranok
 
Eleanor
EleanorEleanor
EleanorSC3402
 
Eleanor
EleanorEleanor
EleanorSC3402
 
Web AppBuilder for ArcGIS. расширенные возможности
Web AppBuilder for ArcGIS. расширенные возможностиWeb AppBuilder for ArcGIS. расширенные возможности
Web AppBuilder for ArcGIS. расширенные возможностиKonstantin Nagornyuk
 
Переход сайта на Https - инструкция от WebCanape
Переход сайта на Https - инструкция от WebCanapeПереход сайта на Https - инструкция от WebCanape
Переход сайта на Https - инструкция от WebCanapeWebCanape
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Noveo
 
Trening modul2-webinar14
Trening modul2-webinar14Trening modul2-webinar14
Trening modul2-webinar14olgaoov
 

Similaire à C# Web. Занятие 07. (20)

FFCMS - вводная для пользователя
FFCMS - вводная для пользователяFFCMS - вводная для пользователя
FFCMS - вводная для пользователя
 
Service workers
Service workersService workers
Service workers
 
основные понятия Web сайта
основные понятия Web сайтаосновные понятия Web сайта
основные понятия Web сайта
 
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
 
C# Desktop. Занятие 08.
C# Desktop. Занятие 08.C# Desktop. Занятие 08.
C# Desktop. Занятие 08.
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
Создание Adobe AIR клиента для социальных сетей на примере Twitter
Создание Adobe AIR клиента для социальных сетей на примере TwitterСоздание Adobe AIR клиента для социальных сетей на примере Twitter
Создание Adobe AIR клиента для социальных сетей на примере Twitter
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиков
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Система управления сайтом «1С-Битрикс» изнутри: работа с корпоративным сайтом
Система управления сайтом «1С-Битрикс» изнутри: работа с корпоративным сайтомСистема управления сайтом «1С-Битрикс» изнутри: работа с корпоративным сайтом
Система управления сайтом «1С-Битрикс» изнутри: работа с корпоративным сайтом
 
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesОсновные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure Websites
 
Eleanor
EleanorEleanor
Eleanor
 
Eleanor
EleanorEleanor
Eleanor
 
Web AppBuilder for ArcGIS. расширенные возможности
Web AppBuilder for ArcGIS. расширенные возможностиWeb AppBuilder for ArcGIS. расширенные возможности
Web AppBuilder for ArcGIS. расширенные возможности
 
Переход сайта на Https - инструкция от WebCanape
Переход сайта на Https - инструкция от WebCanapeПереход сайта на Https - инструкция от WebCanape
Переход сайта на Https - инструкция от WebCanape
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
 
Trening modul2-webinar14
Trening modul2-webinar14Trening modul2-webinar14
Trening modul2-webinar14
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 

Plus de Igor Shkulipa

Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03. Igor Shkulipa
 
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.Igor Shkulipa
 
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.Igor Shkulipa
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.Igor Shkulipa
 
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.Igor Shkulipa
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.Igor Shkulipa
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.Igor Shkulipa
 
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.Igor Shkulipa
 
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.Igor Shkulipa
 
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.Igor Shkulipa
 
C# Web. Занятие 16.
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.Igor Shkulipa
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.Igor Shkulipa
 
C# Web. Занятие 15.
C# Web. Занятие 15.C# Web. Занятие 15.
C# Web. Занятие 15.Igor Shkulipa
 
C# Web. Занятие 10.
C# Web. Занятие 10.C# Web. Занятие 10.
C# Web. Занятие 10.Igor Shkulipa
 
C# Web. Занятие 02.
C# Web. Занятие 02.C# Web. Занятие 02.
C# Web. Занятие 02.Igor Shkulipa
 
C# Desktop. Занятие 13.
C# Desktop. Занятие 13.C# Desktop. Занятие 13.
C# Desktop. Занятие 13.Igor Shkulipa
 

Plus de Igor Shkulipa (16)

Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
 
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.
 
JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.JavaScript Базовый. Занятие 06.
JavaScript Базовый. Занятие 06.
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
 
JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.JavaScript Базовый. Занятие 05.
JavaScript Базовый. Занятие 05.
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
 
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
 
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.
 
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.
 
C# Web. Занятие 16.
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
 
C# Web. Занятие 15.
C# Web. Занятие 15.C# Web. Занятие 15.
C# Web. Занятие 15.
 
C# Web. Занятие 10.
C# Web. Занятие 10.C# Web. Занятие 10.
C# Web. Занятие 10.
 
C# Web. Занятие 02.
C# Web. Занятие 02.C# Web. Занятие 02.
C# Web. Занятие 02.
 
C# Desktop. Занятие 13.
C# Desktop. Занятие 13.C# Desktop. Занятие 13.
C# Desktop. Занятие 13.
 

C# Web. Занятие 07.

  • 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), и каждая зона может содержать столько веб-частей, сколько необходимо пользователю.
  • 5. http://www.slideshare.net/IgorShkulipa 5 Пример. Пользовательский элемент. WebPart1.ascx <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebPart1.ascx.cs" Inherits="WFApplication1.WebPart11" %> <body> <div> Hello, Web Parts!!! </div> </body>
  • 6. http://www.slideshare.net/IgorShkulipa 6 Пример. WebParts.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="WebParts.aspx.cs« Inherits="WFApplication1.WebParts" %> <%@ Register Src="~/WebPart1.ascx" TagName="WebPart1" TagPrefix="control" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server"> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <table style="width: 100%"> <tr style="vertical-align: top"> <td style="width: 20%"></td> <td style="width: 60%"> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <control:WebPart1 ID="WebPart1ID" runat="server" /> </ZoneTemplate> </asp:WebPartZone> </td> <td style="width: 20%"></td> </tr> </table> </asp:Content>
  • 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 Ядро инфраструктуры аутентификации с помощью форм, устанавливающее контекст безопасности и выполняющее при необходимости автоматическое перенаправление на страницу входа
  • 19. http://www.slideshare.net/IgorShkulipa 19 Пример. Login.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WFApplication1.Login" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainContent« runat="server"> <asp:TextBox ID="LoginTB" runat="server" AutoPostBack="true"/> <asp:TextBox ID="PassTB" runat="server" TextMode="Password"/> <asp:Button ID="LoginBTN" runat="server" Text="Login" OnClick="LoginBTN_Click"/> </asp:Content>
  • 20. http://www.slideshare.net/IgorShkulipa 20 Пример. Login.aspx.cs public partial class Login : System.Web.UI.Page { protected void LoginBTN_Click(object sender, EventArgs e) { //Перед этим стоило бы сделать проверку авторизации... FormsAuthentication.RedirectFromLoginPage(LoginTB.Text, true); } }
  • 21. http://www.slideshare.net/IgorShkulipa 21 Пример. Web.config <authentication mode="Forms"> <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH"> </forms> </authentication> <authorization> <deny users="?" /> </authorization>
  • 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 - инструмент администрирования веб-сайтов), в состав которого входит мастер настройки безопасности.
  • 31. http://www.slideshare.net/IgorShkulipa 31 Пример. Login.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WFApplication1.Login" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainContent« runat="server"> <asp:TextBox ID="LoginTB" runat="server" AutoPostBack="true"/> <asp:TextBox ID="PassTB" runat="server" TextMode="Password"/> <asp:Button ID="LoginBTN" runat="server" Text="Login" OnClick="LoginBTN_Click"/> <br/> <asp:Label ID="LabelResult" runat="server"></asp:Label> </asp:Content>
  • 32. http://www.slideshare.net/IgorShkulipa 32 Пример. Login.aspx.cs public partial class Login : System.Web.UI.Page { protected void LoginBTN_Click(object sender, EventArgs e) { if (Membership.ValidateUser(LoginTB.Text, PassTB.Text)) { LabelResult.Text = "Loged In"; } else { LabelResult.Text = "Failed"; } } }
  • 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 символов (подобно примеру пароля), но позволяет использовать специальные символы (звездочки, амперсанды и т.д.)
  • 38. http://www.slideshare.net/IgorShkulipa 38 Пример. Login.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WFApplication1.Login" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server"> <asp:RegularExpressionValidator runat="server" ID="LoginValidator" ControlToValidate="LoginTB" ValidationExpression="S{4,5}" ErrorMessage="Incorrect Login" Display="dynamic"> Input Correct Login </asp:RegularExpressionValidator> <asp:TextBox ID="LoginTB" runat="server" OnTextChanged="LoginTB_TextChanged" AutoPostBack="true"/> <asp:TextBox ID="PassTB" runat="server" TextMode="Password"/> <asp:Button ID="LoginBTN" runat="server" Text="Login" OnClick="LoginBTN_Click"/> <br/> <asp:Label ID="LabelResult" runat="server"></asp:Label> </asp:Content>
  • 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. Каждая вкладка имеет заголовок, и пользователь переходит от одной вкладки к другой, щелкая на заголовках
  • 50. http://www.slideshare.net/IgorShkulipa 50 Пример. Site.Master <%@ Register TagPrefix="ajaxToolkit" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %> <ajaxToolkit:ToolkitScriptManager runat="server"> <Scripts> <asp:ScriptReference Name="jquery" /> <asp:ScriptReference Name="jquery.ui.combined" /> <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" /> <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" /> <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" /> <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" /> <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" /> <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" /> <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" /> <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" /> <asp:ScriptReference Name="WebFormsBundle" /> <%--Site Scripts--%> </Scripts> </ajaxToolkit:ToolkitScriptManager>
  • 51. http://www.slideshare.net/IgorShkulipa 51 Пример. Login.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WFApplication1.Login" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server"> <ajaxToolkit:CalendarExtender ID="Calendar1" runat="server" TargetControlID="LoginTB" Animated="true" > </ajaxToolkit:CalendarExtender> <asp:TextBox ID="LoginTB" runat="server" OnTextChanged="LoginTB_TextChanged“ AutoPostBack="true"/> <asp:TextBox ID="PassTB" runat="server" TextMode="Password"/> <asp:Button ID="LoginBTN" runat="server" Text="Login" OnClick="LoginBTN_Click"/> <br/> <asp:Label ID="LabelResult" runat="server"></asp:Label> </asp:Content>
  • 53. http://www.slideshare.net/IgorShkulipa 53 Лабораторная работа №7. К лабораторной работе №6 добавить возможность авторизации, валидацию ввода в форму и элементы AJAX Toolkit