среда, 6 февраля 2008 г.

Свой типизированный профиль пользователя в ASP.Net

ASP.Net 2.0 содержит возможность использования профилей пользователей - User profile system.
Возможность эта позволяет прямо в файле конфигурации описывать структуру хранимого профиля пользователя
<profile>
<properties>
<add name="FavoritePasta" />
</properties>
</profile>

И затем использовать пользоваться этим профилем:
<span id="user-favorite-pasta"><%= Profile.FavoritePasta %></span>

Проблема в том, что Intellisense и типизация для такого профиля есть только в проекте веб-сайта, в котором он описан.
Т.е. для проектов больше "домашней странички" среда Visual Studio лишает нас возможности использования типизированного профиля.

John Galloway в своем блоге подробно описывает решение этой проблемы: Writing a custom ASP.NET Profile class. Заключается оно в создании своего класса, наследующегося от ProfileBase (код класса с двумя helper-методами есть в его статье) и явном указании использования этого класса для типизации профиля:

<profile inherits="MyMembership.UserProfile">
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="MyConnectionString"/>
</providers>
<properties>
<add name="FavoritePasta" />
</properties>
</profile>


Такие вот приседания вокруг базовой фичи. MVC Framework, похоже, будет ещё страшнее.

Комментариев нет: