На самом деле AspNetSqlProfileProvider
(типа System.Web.Profile.SqlProfileProvider
) добавляется по умолчанию в machine.config
. Посмотрите на каталог C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG
(или другое место). Тем не менее, он не зарегистрирован в качестве поставщика по умолчанию там. Поэтому, если вас устраивают настройки по умолчанию , достаточно использовать следующую конфигурацию:
<profile enabled="true" defaultProvider="AspNetSqlProfileProvider" />
Если вы хотите использовать настраиваемого поставщика, обычно рекомендуется удалить все существующие поставщики (хотя и не обязательно) и указать другого поставщика по умолчанию.
Причина, по которой вы не используете remove
, заключается в том, что для него требуется атрибут name
, который вы можете не знать. Использование clear
удаляет всех ранее зарегистрированных провайдеров профилей, использование remove
удаляет только одного по имени.
По поводу Q2 вы правы. Используемая схема базы данных должна быть достаточно общей, чтобы вместить множество различных свойств (и типов свойств).