Роли и профили ASP.NET: лучший способ сделать запрос о коллекции пользователей, которые соответствуют свойству пользовательского профиля? - PullRequest
1 голос
/ 19 июня 2009

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

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

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

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

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

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

1 Ответ

1 голос
/ 19 июня 2009

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

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

...