2009-06-19 2 views
1

Членство в ASP.NET 2.0, роли и профили - это мяуканье кошки. API для ролей поддерживает удобные методы, такие как GetAllUsersInRole («MyNewsletterSubscriber»), который вернет коллекцию людей в роли «MyNewsletterSubscriber».Роли и профили ASP.NET: лучший способ запроса для сбора пользователей, которые соответствуют настраиваемому свойству профиля?

Мне интересно, какой лучший способ вернуть коллекцию людей с пользовательскими свойствами профиля ASP.NET может быть. Так, например, я могу создать одно настраиваемое свойство профиля, называемое IsNewsletter1SubscriptionUserSelectionTextOnly, а также другое настраиваемое свойство профиля, называемое IsNewsletter1UserSelectionMobileOptimized.

Как тогда, могу ли я наиболее эффективно запросить что-то похожее на GetAllUsersWithCustomProfileProperty («IsNewsletter1SubscriptionUserSelectionTextOnly», true);

Для использования, которое я представляю, API вокруг профилей кажется недоразвитым - я думаю, что Скотт Гатри упомянул о предстоящей работе над этим в своем разговоре на Tech Ed 2006, но я не знаю, что было сделано.

Возможно также, что я пытаюсь использовать профили неуместно, и было бы лучше сохранить весь этот мусор как прямые роли. Не знаю. Мне нравится идея использования ролей или профилей для управления списками, но я не знаю, как это сделать.

Мысли, идея, ответы? Спасибо ...

ответ

1

Ну, запросы на профили - по крайней мере, с реализацией SQL по умолчанию - страшно, потому что вы действительно запрашиваете двоичное сериализованное поле, поэтому каждый запрос должен загружать каждую строку в базе данных, десериализовать сказал двоичный код, а затем проверить ответ. Поэтому не обманывайте и не делайте это с помощью LINQ to Objects или что-то еще, ваш администратор базы данных будет стрелять в вас.

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

Смежные вопросы