Веб-сайты предназначены для повторных посещений со стороны пользователей. Персонализация позволяет сайту запоминать личность пользователя и другую информацию, а также предоставляет индивидуальную среду для каждого пользователя.
ASP.NET предоставляет услуги по персонализации веб-сайта в соответствии со вкусом и предпочтением конкретного клиента.
Понимание профилей
Служба персонализации ASP.NET основана на профиле пользователя. Профиль пользователя определяет тип информации о пользователе, который нужен сайту. Например, имя, возраст, адрес, дата рождения и номер телефона.
Эта информация определена в файле web.config приложения, и среда выполнения ASP.NET считывает и использует ее. Эта работа выполняется поставщиками персонализации.
Профили пользователей, полученные из пользовательских данных, хранятся в базе данных по умолчанию, созданной ASP.NET. Вы можете создать свою собственную базу данных для хранения профилей. Определение данных профиля хранится в файле конфигурации web.config.
пример
Давайте создадим образец сайта, на котором мы хотим, чтобы наше приложение запоминало данные пользователя, такие как имя, адрес, дата рождения и т. Д. Добавьте данные профиля в файл web.config в элементе <system.web>.
<configuration> <system.web> <profile> <properties> <add name="Name" type ="String"/> <add name="Birthday" type ="System.DateTime"/> <group name="Address"> <add name="Street"/> <add name="City"/> <add name="State"/> <add name="Zipcode"/> </group> </properties> </profile> </system.web> </configuration>
Когда профиль определен в файле web.config, профиль можно использовать через свойство Profile, найденное в текущем HttpContext, а также доступное через страницу.
Добавьте текстовые поля, чтобы принять пользовательский ввод, как определено в профиле, и добавьте кнопку для отправки данных:
Обновите Page_load для отображения информации профиля:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ProfileCommon pc=this.Profile.GetProfile(Profile.UserName); if (pc != null) { this.txtname.Text = pc.Name; this.txtaddr.Text = pc.Address.Street; this.txtcity.Text = pc.Address.City; this.txtstate.Text = pc.Address.State; this.txtzip.Text = pc.Address.Zipcode; this.Calendar1.SelectedDate = pc.Birthday; } } } }
Напишите следующий обработчик для кнопки «Отправить» для сохранения пользовательских данных в профиле:
protected void btnsubmit_Click(object sender, EventArgs e) { ProfileCommon pc=this.Profile.GetProfile(Profile.UserName); if (pc != null) { pc.Name = this.txtname.Text; pc.Address.Street = this.txtaddr.Text; pc.Address.City = this.txtcity.Text; pc.Address.State = this.txtstate.Text; pc.Address.Zipcode = this.txtzip.Text; pc.Birthday = this.Calendar1.SelectedDate; pc.Save(); } }
Когда страница выполняется в первый раз, пользователь должен ввести информацию. Однако в следующий раз пользовательские данные будут автоматически загружены.
Атрибуты для элемента <add>
Помимо атрибутов name и type, которые мы использовали, есть и другие атрибуты для элемента <add>. Следующая таблица иллюстрирует некоторые из этих атрибутов:
Атрибуты | Описание |
---|---|
название | Наименование имущества. |
тип | По умолчанию тип является строкой, но он допускает любое полное имя класса в качестве типа данных. |
serializeAs | Формат, используемый при сериализации этого значения. |
доступен только для чтения | Значение профиля только для чтения не может быть изменено, по умолчанию это свойство имеет значение false. |
значение по умолчанию | Значение по умолчанию, которое используется, если профиль не существует или не содержит информации. |
allowAnonymous | Логическое значение, указывающее, можно ли использовать это свойство с анонимными профилями. |
поставщик | Поставщик профилей, который следует использовать для управления только этим свойством. |
Анонимная персонализация
Анонимная персонализация позволяет пользователю персонализировать сайт перед тем, как идентифицировать себя. Например, Amazon.com позволяет пользователю добавлять элементы в корзину до входа в систему. Чтобы включить эту функцию, файл web.config можно настроить следующим образом: