Пинягина о. В

Вид материалаДокументы

Содержание


Обзор Asp.Net
Семь важных фактов об ASP.NET [1]
2. ASP.NET компилируется, а не интерпретируется.
3. ASP.NET поддерживает несколько языков.
4. ASP.NET функционирует внутри исполняющей среды CLR.
5. ASP.NET является объектно-ориентированной.
6. ASP.NET поддерживает множество устройств и браузеров.
7. ASP.NET легко развертывается и конфигурируется.
Этап 3. Разработка системы регистрации и авторизации пользователей Авторизация сотрудников
Toolbox секцию Login
1   2   3   4   5   6   7   8   9   ...   13

Обзор Asp.Net



Как читателю уже известно, ASP.NET – это новая технология для создания серверных Web-приложений компании Microsoft. Она входит в состав платформы Microsoft .Net Framework, которая представляет собой набор тесно связанных друг с другом новых революционных технологий, начиная с технологии для получения доступа к базам данных и заканчивая технологией для создания распределенных приложений. ASP.NET является одним из самых важных компонентов .NET Framework и позволяет разрабатывать современные высокопроизводительные Web-приложения и Web-службы.


Семь важных фактов об ASP.NET [1]

1. ASP.Net интегрирована с .Net Framework.

Среда .Net Framework содержит обширную коллекцию классов, структур, интерфейсов – более 7000 типов. Они сгруппированы в пространства имен. Интересно отметить, что способ использования классов в ASP.NET ничем не отличается от способа применения их в любом другом типе приложения .NET (Windows-приложение, Windows-служба, консольное приложение и т.п.)

2. ASP.NET компилируется, а не интерпретируется.

Приложения ASP.NET всегда компилируются – фактически невозможно выполнить код C# или VB.NET без его предварительной компиляции.

В действительности эти приложения проходят два этапа компиляции. На первом этапе код C# (или другого языка) компилируется в код промежуточного языка под названием Microsoft Intermediate Language (MSIL, или IL). Этот этап может произойти автоматически при первом запросе страницы, или его можно выполнить заранее. Скомпилированный файл с кодом IL называется сборкой.

Второй этап компиляции наступает непосредственно перед фактическим выполнением страницы. На этом этапе код IL компилируется в низкоуровневый машинный код. Этот этап называют также Just-in-time компиляцией и он проходит одинаково для всех приложений .NET.

3. ASP.NET поддерживает несколько языков.

Это языки Visual Basic, Visual C#, Visual J# (в Visual Studio 2005). Какой бы язык не использовал разработчик .NET, код все равно компилируется в MSIL. Фактически MSIL – это единственный язык, который понимает среда выполнения Common Language Runtime.

4. ASP.NET функционирует внутри исполняющей среды CLR.

Возможно, наиболее важный аспект, касающийся ASP.NET – это ее функционирование внутри исполняющей среды CLR. Основные преимущества CLR: автоматическое управление памятью и сборка мусора, безопасность типов, понятие метаданных, структурированная обработка ошибок, многопоточность.

5. ASP.NET является объектно-ориентированной.

Разработчик может в полной мере использовать многочисленные классы .NET Framework, а также разрабатывать собственные.

Один из лучших примеров объектно-ориентированного мышления в ASP.NET можно найти в так называемых «серверных элементах управления». Серверные элементы управления представляют собой инкапсуляцию в миниатюре. Разработчики могут программно манипулировать объектами управления с использованием кода для настройки их внешнего вида, предоставления данных для отображения и даже реакции на события. Низкоуровневые подробности HTML «спрятаны за сценой». Вместо того чтобы вынуждать разработчика писать «сырой» HTML вручную, объекты управления преобразуются в HTML по завершении визуализации страницы. Таким образом, ASP.NET предлагает серверные элементы управления в качестве способа устранения низкоуровневых подробностей программирования на HTML и HTTP.

6. ASP.NET поддерживает множество устройств и браузеров.

Одна из самых сложных проблем для Web-разработчиков – совместимость разрабатываемого приложения с большим количеством современных браузеров. Различные браузеры, версии и конфигурации по-разному поддерживают HTML. В ASP.NET серверные элементы управления способнее генерировать HTML-код, адаптируясь к возможностям клиента.

7. ASP.NET легко развертывается и конфигурируется.

Еще одной сложной проблемой для разработчиков является развертывание готового приложения на реальном web-сервере. Необходимо не только переместить файлы Web-страниц, базы данных и компоненты, но также повторно создать множество параметров конфигурации. В ASP.NET этот процесс существенно упрощен. Развертывание осуществляется обычным копированием. Большинство установок конфигурации приложения или его отдельных каталогов хранятся в специальных файлах ASP.NET web.config. Этот файл содержит иерархически сгруппированные настройки приложения, хранимые в удобочитаемом формате XML, который можно редактировать с использованием простого текстового редактора, подобного Notepad.

Итак, приступим непосредственно к разработке нашего ASP.NET-приложения.


Этап 3. Разработка системы регистрации и авторизации пользователей

Авторизация сотрудников



Наших сотрудников регистрирует администратор через служебный web-интерфейс, поэтому начнем сразу с системы авторизации сотрудников. На главной странице нашего сайта есть гиперссылка «вход для сотрудников», которая ссылается на файл login.aspx. Создадим этот файл: FileNewFile, изменим имя файла на login.aspx и обратим внимание на флажок «Place code in separate file». Этот флажок означает, что на самом деле будет создан еще и файл login.aspx.cs, в который мы будем помещать код программы на C# - функции-обработчики, выполняемые на серверной стороне.

По умолчанию созданный .aspx-файл содержит тег



который представляет собой так называемую «серверную форму» - то есть объект, для которого можно задавать функции-обработчики, выполняемые на сервере перед отправкой в браузер. По умолчанию сценарий вызывает сам себя. Запомните, что в пределах одной web-страницы можно разместить только одну серверную форму – иначе возникнет ошибка компиляции. Обычных HTML-форм можно размещать сколько угодно.

Выберем на вкладке Toolbox секцию Login, выберем в этой секции объект Login и поместим на нашу форму. Он выглядит (в режиме Design) следующим образом:




а его код выглядит так:





Очевидно, этот объект следует подкорректировать, хотя бы для замены надписей на русские. Для этого щелкнем правой кнопкой на объекте и выберем пункт «Convert to template». Теперь можно изменять составные части объекта. Используйте для этого окно Properties.

Если мы теперь заглянем в код страницы, то теперь увидим там более подробные теги. Например, теги для имени пользователя будут выглядеть так





Логин:





*





Здесь сначала создается метка , затем текстовое поле , а затем специальный объект для проверки непустоты этого поля: . Этот объект проявит себя, если пользователь не заполнит поле имени и нажмет кнопку Log In. Кстати, эта проверка выполняется на клиентской стороне – сервер генерирует для этого специальные клиентские обработчики.

Обработку ошибок объект-логин берет на себя. А вот в случае успешной авторизации обработку придется написать самим. Если сотрудник успешно авторизован, то его следует переадресовать на главную страницу АРМ, соответствующего его роли. Для этого в файле login.aspx.cs зададим обработку для события загрузки страницы:


protected void Page_Load(object sender, EventArgs e)

{

if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)

{

if(System.Web.HttpContext.Current.User.IsInRole("librarian"))

Response.Redirect("~/librarian/Default.aspx");

else if

(System.Web.HttpContext.Current.User.IsInRole("warehouse"))

Response.Redirect("~/warehouse/Default.aspx");

else if

(System.Web.HttpContext.Current.User.IsInRole("collector"))

Response.Redirect("~/collector/Default.aspx");

}

}


Здесь сначала выполняется проверка, аутентифицирован ли пользователь. Если да, то проверяем, относится ли пользователь к одной из трех наших ролей. В случае положительного ответа выполняем перенаправление с помощью объекта Response – это специальный объект, который инкапсулирует информацию об ответе сервера браузеру.

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

protected void Page_Load(object sender, EventArgs e)

{

FormsAuthentication.SignOut();

Session.RemoveAll();

Session.Clear();

Response.Redirect("default.aspx");

}


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

Примечание: для неавторизованных пользователей любая попытка попасть на защищенную страницу приводит к автоматической переадресации на страницу login.aspx. Поменяем это назначение на страницу default.aspx. Для этого в корневом файле web.config найдем строку





и заменим ее на: