Я не совсем уверен, что есть лучшая практика, и это действительно зависит от того, как вы хотите использовать информацию.
Во-первых, вы должны признать, что членство и профили - это две разные вещи. Функции членства, профиля и роли ASP.NET предназначены для использования в качестве службы, обслуживающей несколько сайтов / приложений.
Если вы посмотрите на схему этих отношений, вы заметите, что пользователи уникальны для системы, но пользователя можно использовать в разных приложениях. Это означает, что информация об их профиле также используется в приложениях. Членство на самом деле является ассоциацией пользователя с приложением и содержит информацию об их отношении к этому конкретному приложению (пароль, пароль, вопросы и ответы и т. Д.).
Вы можете использовать поставщика профиля, как предложил Райан, но 1) эту информацию нелегко запросить, если вы хотите собрать метрики профиля, и 2) она распределяется между всеми потребителями услуг членства / профиля. Однако вы можете расширить его в соответствии со своими потребностями.
Вы можете расширить поставщика членства, как предлагал Горток, и эта информация будет относиться к приложению, но вам нужно убедиться, что вы не нарушите работу существующих потребителей службы, изменив существующие хранимые процедуры или таблицы таким образом, чтобы изменить их интерфейс или намерение.
Другой вариант - вы можете рассматривать его как услугу и отслеживать эту информацию самостоятельно, ссылаясь на свою собственную реализацию профиля, используя идентификатор пользователя из провайдера asp.net sql.
Есть хорошая серия (16 частей) по Членство, профили и роли на сайте 4 Guys from Rolla, которых я бы порекомендовал прочитать, а затем, когда вы ознакомитесь со всеми движущимися частями, примите обоснованное решение о том, где лучше всего хранить и как лучше всего структурировать информацию профиля, которую вы хотите создать. .
person
andymeadows
schedule
16.07.2009