Учебники

ASP.NET — Персонализация

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

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 можно настроить следующим образом: