Подтвердить что ты не робот

ASP.NET, созданный в пользовательском профиле, и класс/таблицы старого стиля

Я ищу рекомендации относительно наилучшей практики использования функции профиля в ASP.NET.

Как вы решаете, что следует хранить во встроенном профиле пользователя, или если вы должны создать свою собственную таблицу базы данных и добавить столбец для желаемых полей? Например, у пользователя есть почтовый индекс, следует ли сохранить почтовый индекс в моей собственной таблице или добавить его в профиль xml web.config и получить доступ к нему через механизм ASP.NET-профиля пользователя?

Плюсы/минусы, о которых я могу сейчас думать, это то, что, поскольку я не очень хорошо знаю профиль (сейчас это немного Матрица), я, вероятно, могу делать все, что захочу, если я иду по маршруту таблицы (например, SQL, чтобы получить всех пользователей в том же почтовом индексе, что и текущий пользователь). Я не знаю, могу ли я сделать то же самое, если я использую профиль ASP.NET.

4b9b3361

Ответ 1

Я создал только 2 приложения, которые использовали поставщика профилей. С тех пор я не мог использовать его. Для обоих приложений я использовал его для хранения информации о пользователе, такой как название своей компании, адрес и номер телефона.

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

Я бы рекомендовал хранить этот тип информации в своей таблице.

Ответ 2

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

Ответ 3

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

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

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

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

Если вы думаете о написании своей собственной вещи, возможно, пользовательский поставщик профилей дает вам лучшее из обоих миров - бесшовная интеграция, но пользовательский материал, который вы хотите сделать.

Ответ 4

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

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

Ответ 5

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

конечно, это личное предпочтение, но другие подняли некоторые другие важные проблемы.

Также очень полезно, учитывая, что он может использоваться для не прошедшего проверку пользователя, профиль которого поддерживается с анонимным файлом cookie.