Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 371

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 365 366 367 368 369 370 < 371 > 372 373 374 375 376 377 .. 404 >> Следующая

*• :¦¦¦> Г Ш tS СП *—^41 ^ &**** %
T; r •: *¦ ¦
“¦ v л]
IlCojjHli.'b Cofletttein IЩ
А5Р.Л?Т_5«Э0пИ T :
I^UUJiL .
ГГ ¦ 'йемййЬь 2
Практический пример 1 — web-сайт для проведения опросов

789

Если заново построить проект, открыть страницу default.aspx, проголосовать, а затем повторно загрузить default.аарх, то часть трассировочного вывода, которая посвящена кукн, будет содержать именно наш кукя (см. рис. справа).

После успешного завершения процесса сохранения информации в кукн на машнне пользователя появится возможность определять,

3 i>Mpe//kK..ilhbit^alW - Kncruipfl ЁИгтае* ?чйогнг

_

№ tat

F >-. <а IV-t

. , 0-41

Cookies Collection

ASP.hf г jUimuM WrojtPoB

VoIuiti

Wh al development langueg* do you Jtomarity u*a? 56

В Bo»'

"l ' Г

принимал лн уже данный пользователь участие в текущем опросе. Чтобы заблокировать возможность повторного голосования, нужно включить в начало метода vote о следующий код:

if (HttpContext.Current.Request.Cookieel'WroxPoil*! 1= null)

(

i? (HttpContext .Current .Request .Cookies [ *WroxPoll*] .Value *« myQuestion t . throw (new Exception ('You have already voted in thia poll') >

/ Вы ухе принимали участие в данном опросе /

>

)

¦ s ; ЛХ-Л

?М L* г ¦ jr.-D--j.-n

^ 9 'ЗЁ! Ш й! ' ^ Ijiy» _J

U~ у] ^й; Lfk-* w

fb-?VC -wOJril *| 4 hli |X ., «П r.Vmi> V, i ic-r I I -гЛ-иГГ

>bi

Server Error in ’/PollW' Application.

lib»

Сначала выполняется проверка на предмет того, существует ли вообще данный кукн, и, убедившись, что он не равен null,— проверка на предмет того, не совпадает его значение с вопросом активного в настоящий момент опроса.

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

окажется вполне достаточно, если наличие куки, значение которого совпадает с текстом вопроса текущего опроса, будет приводить к возникновению исключительной ситуации. Помните, что перед использованием HttpContext следует осуществить проверку на предмет того, не равен лн он null, чтобы случайно не обратиться к куки другого типа приложения, отличного от прило-. жения ASP.NET (см. рис. слева).

Выясняется, что если вы зайдете в XML-файл (c:\polis.xral) и измените вопрос опроса, то вы снова получите возможность принимать участие в голосовании. Это объясняется тем, что наша проверка на предмет того, принимал ли пользователь участие в голосовании, основана на вопросе опроса. Стоит изменить вопрос, как значение куки и текст вопроса перестанут совпадать, а голосование будет зарегистрировано. Еслн голосование регистрируется, то приложение Windows Forms выводит новое значение суммарного количество голосов после его обновления (т. е. не позднее пяти секунд).

You have already voted in this poll

HL

”! I I Eft*
790____________________________________________________________________Практический пример

Управление опросами

Одно из преимуществ .NET перед предшествующими технологиями заключается в том, что возможность повторного использования создаваемого программного обеспечения несколько упрощается. В этом разделе мы собираемся создать пакет web-сайта для проведения опросов, с тем чтобы иметь возможность вставлять этот сайт в любую страницу ASP.NET при помощи всего лишь пары строк кода. На данном этапе необходимо выполнить довольно значительный объем работы, для того чтобы интегрировать процедуру проведения опроса в какую-либо другую web-страницу, поскольку для этого потребуется скопировать соответствующую информацию как нз файла с расширением .aspx, так и из файла “с кодом поддержки", который имеет расширение .aspx.cs. Мы будем создавать управляющий элемент таким образом, что в качестве дополнительной возможности он будет выводить страницу с опросом, и если данный пользователь уже проголосовал ранее,

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

Для того чтобы создать пакет для проведения голосования, нужно разработать нестандартный управляющий элемент, который будет реализован в классе, наследуемом от класса Control, описанного в .NET Framework. Для начала в Visual Studio.NET следует щелкнуть правой кнопкой мыши на проекте web-приложения (poliw), выбрать меню AcicJ, а в нем пункт Add New Item. В появившемся диалоговом окне нужно выбрать иконку Web Custom Control и ввести в поле Name PollControi. сз, как это проиллюстрировано на рисунке слева.

Хотя Visual Studio.NET генерирует несколько строк кода, для того чтобы нам было с чего начинать (прн этом реализуется свойство тсхс создаваемого управляющего элемента), однако нам все это не понадобится, поэтому для начала работы нужно привести класс к еще более простому виду:

using Systemi using System.Web.UXг using System.Web.UX.WebControls; using System.ComponentMoc 1;

namespace PollW (

III <аишпвгу>

III Краткое описание класса PollControi,
Предыдущая << 1 .. 365 366 367 368 369 370 < 371 > 372 373 374 375 376 377 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.