Общие сведения о свойствах профилей 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