Персонализация
Многие сайты собирают информацию о пользователях, чтобы подстроить показ информации под их личные вкусы. Часто для этого используют файлы-cookie, объекты приложения и сессии.
В ASP .NET 2.0 появились новые удобные способы хранить пользовательскую информацию. Это функция персонализации. Механизм персонализации позволяет установить прямую связь между пользователем и всеми данными, относящимися к нему. При этом его настройки хранятся не в файлах-cookie на компьютере пользователя, которые он может стереть, а на сервере. Их можно поместить в любое хранилище данных.
Модель персонализации проста и расширяема.
В файле web.config содержится информация о том, какие данные о пользователе необходимо хранить. Она записывается в секции <configuration><system.web> перед секцией authentication:
<profile> <properties> <add name="FirstName" /> <add name="LastName" /> <add name="LastVisited" /> <add name="Age" /> <add name="Member" /> </properties> </profile>
Профиль персонализации может хранить данные об авторизированном пользователе, но может обслуживать и анонимного пользователя. По умолчанию анонимная персонализация выключена. Чтобы ее включить, нужно в файле web.config создать запись
<anonymousIdentification enabled="true" />
(так же в секции <system.web>).
Когда анонимная персонализация включена, ASP .NET хранит уникальный идентификатор для каждого анонимного пользователя.
Он посылается вместе с любым запросом. Идентификатор хранится в файле-cookie пользователя, а дополнительные данные, которые удалось собрать о его предпочтениях, — на сервере. По умолчанию имя файла-cookie — .ASPXANONYMOUS. Его можно поменять с помощью атрибута cookieName элемента anonymousIdentification:
<anonymousIdentification enabled="true" cookieName=".intuit"/>
Время хранения файла-cookie в минутах определяется атрибутом cookieTimeout.
По умолчанию оно равно 100 000 минутам (69,4 дня).
От использования cookie можно отказаться, например, написав
cookieless="UseUri"
В таком случае идентификатор передается через строку URL:
cookieless="AutoDetect"
В этом случае определяются настройки пользователя. Если возможность хранить cookie выключена, используется строка URL.
Анонимный идентификатор по своей сути представляет собой GUID (32-байтное число, алгоритм генерации которого гарантирует глобальную уникальность). Свойство AnonymousId объекта Request страницы позволяет получить к нему доступ.
Для того чтобы определить, какие данные можно хранить для анонимного пользователя, в элемент add name определяют атрибут allowAnonymous:
<add name="LastVisited" allowAnonymous="true"/>