|
Программирование >> Программирование с использованием ajax
Имя обработчика Описание AnonymousIdentification Create Anonymousldentification Remove Profile MigrateAnonymous Когда анонимный пользователь заходит на Web-сайт впервые, создается анонимный профиль. В этот момент вызывается обработчик события Anonymousldentification Create Когда зарегистрированный пользователь заходит на Web-страницу, а запрос зарегистрированного пользователя содержит идентификатор профиля анонимного пользователя, профиль анонимного пользователя удаляется, и вызывается обработчик события Anonymousldentification Remove После события Anonymousldentif ication Remove вызывается обработчик события Prof ile MigrateAnonymous, благодаря которому анонимный профиль можно передавать в профиль для зарегистрированного пользователя Реализация обработчика Prof ileMigrateAnonymous в файле global, азах выглядит так, как показано в следующем примере. Все значения профиля, доступные для анонимных пользователей, могут быть переданы в конфигурацию зарегистрированного пользователя. В примере кода происходит перенос значения профиля Country, доступного для анонимных пользователей, в конфигурационный файл. Сначала проверяется Prof ile. Country, чтобы выяснить, содержит ли он уже значение. Profile. Country будет иметь значение, если пользователь уже был зарегистрирован в системе в тот момент, когда создавалось значение профиля. Оно не будет содержать значение, если до этого момента пользователь был неизвестен в системе. Здесь метод GetProfile (), который передает идентификатор пользователя, помогает получить доступ к информации профиля от других пользователей. Несмотря на то что за одним клиентским компьютером сидит один и тот же человек, у заре- <profile> <properties> <add name= Country allowAnonyпюus= true /> </properties> </profile> Когда доступ к профилю осуществляется для анонимного пользователя, в базе данных поставщика профиля создается запись для анонимного пользователя. Анонимный пользователь получает идентификатор (ID), подобный аутентифицированному пользователю. По умолчанию идентификатор анонимного пользователя хранится внутри cookie-набора, хотя вместо cookie-наборов можно использовать идентификаторы анонимного пользователя внутри URL-строк (т.н. изменение URL (URL-mungling)). Часто бывает так, что информацию профиля об анонимном пользователе необходимо передать для зарегистрированных пользователей. Например, пользователь может добавить продукты в корзину товаров, не пройдя регистрацию; а чтобы отправить заказ, пользователь должен зарегистрироваться в системе. В подобных случаях вся информация о профиле, которая хранилась для анонимного пользователя, должна быть передана зарегистрированному пользователю. Для работы с анонимными профилями в файле global .азах можно задействовать события, перечисленные в табл. 20.2. Таблица 20.2. События для анонимных профилей гистрированного пользователя и анонимного пользователя всегда имеются разные идентификаторы. Когда анонимный пользователь регистрируется в системе и становится аутентифицированным пользователем, идентификатор анонимного пользователя передается в аргументе ProfileMigrateEventArgs метода Profile MigrateAnonymous (). Идентификатор анонимного пользователя (е.AnonymousId) передается методу GetProf ile () для доступа к профилю анонимного пользователя. Эта информация профиля передается в информацию профиля аутентифицированно-го пользователя путем присваивания всех значений профиля (как Country в нашем примере). void Profile MigrateAnonymous(object sender. ProfileMigrateEventArgs e) { if (Profile.Country == null) { Profile.Country = Profile.GetProfile(e.Anonymousid).Country; Web-части Действительно мощным средством, которое позволяет настраивать Web-приложения под каждого пользователя, являются Web-части (Web Parts). Благодаря Web-частям можно с легкостью создавать Web-приложения в стиле порталов. Примером такого приложения для портала из разряда социальных сетей является Facebook. com (рис. 20.8), который позволяет пользователям организовывать информацию так, как им этого захочется. Web-части можно организовывать для поддержания контакта с другими пользователями, получения информации о поездках, обсуждения тем во многих группах и т.д. Благодаря возможности персонально настраивать Web-портал, пользователь может определить, какие Web-части должны быть доступными. * I CItmevt ItafM tMlMtowt intonwi Ежр1огм -T---* Aetson E .rtyn Ruf От Aft* T ГМпмЬ im Otfcer Wrtmw* Vjosoft (35) -* . (10) л A (7) Brlrvue <.A(3] Mr. o(?) IJ OrerttiWobkemoM Uamr titc Aixms ChniMn erwwJ 7 0 11 Aoitruj(13) Ф Ошглвп шМей the Fw .>e арсз слг оп ул /> Otntur ad*-l th* Me ар(*с Ьоп i> Orsbarand < aua\. ttrarrnow*r n(it Puc. 20.8. Реальный пример портала Инфраструктура Web-частей состоит из зон (zone) и частей (part). Части, которые могут находиться внутри зоны, зависят от типа зоны; например, часть LayoutEditorPart может быть частью зоны EditorZone. Главной зоной является зона Web Parts. Web-страница может иметь несколько зон Web Parts для определения компоновки страницы. Внутри этой зоны может содержаться множество Web-частей, пользовательских или серверных элементов управления. Зона Catalog позволяет пользователю или администратору выбрать Web-часть из каталога для отображения внутри Web-страницы. Для этой зоны могут использоваться части PageCatalogPart, IraportCatalogPart и DeclarativeCatalogPart. Благодаря зоне Editor пользователь или администратор могут редактировать поведение и внешний вид отдельных Web-частей. Внешний вид Web-части можно настраивать с помощью следующих элементов: AppearanceEditorPart, BehaviourEditorPart и LayoutEditorPart. Зона Connections используется для обеспечения связи между множеством Web-частей. Например, если пользователь выбирает название месяца года в одной Web-части, то другая Web-часть, отображенная на той же странице, будет знать об этом, и соответствующим образом изменит свое поведение. Диспетчер Web-частей Для любого сайта, на котором используются Web-части, необходим специальный элемент управления - администратор Web-частей WebPartManager. Он отвечает за управление Web-частями. Благодаря этому элементу управления можно создавать, удалять или перемещать элементы управления Web-частей. Единственным требованием в отношении WebPartManager является то, что он должен присутствовать на Web-странице, как показано в следующем коде ASPX: <asp:WebPartManager ID= WebPartManagerl runat= server ></asp:WebPartManager> Этот элемент управления не имеет пользовательского интерфейса во время выполнения, и нет необходимости конфигурировать какие-либо свойства. Его свойства просто позволяют конфигурировать некоторые предупреждающие сообщения, отображаемые перед закрытием или удалением Web-частей. Применительно к WebPartManager интерес представляют те методы, которые выборочно можно применять для изменения режима отображения, как будет показано далее. Зона Web-частей Чтобы иметь возможность использовать каркас Web-частей, для этого как минимум должна существовать зона WebPartZone. Зона WebPartZone содержит элементы управления Web-частей и определяет компоновку и внешний вид этих элементов управления внутри зоны. Как уже было отмечено ранее, зона WebPartZone может содержать пользовательские элементы управления, Web-части и серверные элементы управления. Внутри страницы ASPX зона WebPartZone включает шаблон ZoneTemplate, содержащий элементы управления для отображения. Пример, показанный ниже, содержит ранее созданный пользовательский элемент управления ListEvents: <asp:WebPartZone ID= EventsZone runat= server > <ZoneTemplate> <ucl:ListEvents ID= ListEventsl runat= server /> </ZoneTemplate> </asp:WebPartZone> Благодаря зоне WebPartZone можно определять компоновку, цвет и меню. В приведенном ниже примере продемонстрирована зона WebPartZone с заранее определен-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |