TelerikProfileProvider с настраиваемым поставщиком членства

Я установил двух поставщиков членства: мой собственный поставщик и поставщик Sitefinity. Мой пользовательский поставщик членства установлен по умолчанию.

Я хочу использовать поставщика профилей Sitefinity для обеих групп пользователей. Однако поставщик профиля, похоже, работает только для пользователей, которых я вытаскиваю из поставщика членства Sitefinity.

Немного поработав с Reflector, кажется, что поставщик профиля Telerik предполагает, что имя пользователя существует в его собственной БД.

User userByName = this.Application.GetUserByName(userName);
if (userByName != null)
{
// magic happens here...
}

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

(У меня тоже разместил это на форуме Sitefinity, но до сих пор не получил ответа. ТАК меня избаловал. Я ожидал ответа в считанные минуты, а не дни.)


person Larsenal    schedule 29.09.2009    source источник


Ответы (1)


Если я вас правильно понял, вы хотите использовать провайдера sitefininty в качестве основы и прикрепить некоторую дополнительную информацию к профилям пользователей.

В общем, я бы не советовал пытаться смешиваться с внутренним управлением sitefininty. Вместо этого попробуйте прикрепить любые функции, которые вы хотите выполнить, к стандартному провайдеру.

То, что я делал в этих ситуациях в прошлом, - это создание оболочки поставщика членства (в вашем случае ProfileProviderWrapper), которая содержит внутреннюю ссылку на другого поставщика профиля, будучи самим поставщиком профиля.

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

Таким образом, вы не нарушите поведение sitefinity, но при этом сможете вмешиваться.

person ntziolis    schedule 19.04.2010