Общие сведения о свойствах профилей ASP.NET

Обновлен: Ноябрь 2007

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

Функция профилей ASP.NET связывает информацию с отдельным пользователем и хранит ее в постоянном формате. Профили позволяют управлять сведениями о пользователях без необходимости создавать и поддерживать собственную базу данных. Кроме того, функция профилей ASP.NET предоставляет пользовательские сведения, используя интерфейс API со строгой типизацией, который доступен в любой части приложения.

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

Общие сведения о работе профилей ASP.NET

Для использования профилей сначала нужно включить профили, изменив файл конфигурации веб-приложения ASP.NET. В составе конфигурации указывается поставщик профилей — это базовый класс, отвечающий за низкоуровневые задачи хранения и извлечения данных профилей. Можно использовать поставщик профилей, входящий в состав платформы .NET Framework, который хранит данные профилей в SQL Server, или создать и использовать свой собственный поставщик профилей, как описано в разделе Реализация поставщика профилей. Можно указать экземпляр SqlProfileProvider, подключающийся к произвольной базе данных, или использовать экземпляр по умолчанию SqlProfileProvider, хранящий данные профилей на локальном веб-сервере.

Функция профилей настраивается путем определения списка свойств, значения которых необходимо поддерживать. Например, может понадобиться хранить почтовый индекс пользователя, чтобы приложение могло предоставлять ему региональные сведения — например, прогноз погоды. В файле конфигурации для этого потребуется определить свойство профиля с именем PostalCode. Раздел profile файла конфигурации может выглядеть следующим образом:

<profile>
  <properties>
    <add name="PostalCode" />
  </properties>
</profile>

При запуске приложения платформа ASP.NET создает класс ProfileCommon, который создается динамически путем наследования от класса ProfileBase. В динамическом классе ProfileCommon представлены свойства, созданные по определениям свойств профиля, указанным в конфигурации приложения. Экземпляр этого динамического класса ProfileCommon затем задается в качестве значения свойства Profile текущего контекста HttpContext и будет доступен на страницах приложения.

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

Profile.PostalCode = txtPostalCode.Text
Profile.PostalCode = txtPostalCode.Text;

При задании значения для Profile.PostalCode значение автоматически сохраняется для текущего пользователя. Нет необходимости писать код для определения того, кем является текущий пользователь, или явно сохранять значение в базе данных — эти задачи выполняет функция профилей.

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

weatherInfo = GetWeatherInfo( Profile.PostalCode )
weatherInfo = GetWeatherInfo( Profile.PostalCode );

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

См. также

Основные понятия

Общие сведения о свойствах профилей ASP.NET

Идентификация пользователей для свойств профиля ASP.NET

Определение свойств профиля ASP.NET

Поставщики профилей ASP.NET