2011-02-10 4 views
0

В нашем приложении мы используем базу данных членства asp.net для управления пользователями и ролями. Мы установили таблицы базы данных в моей существующей базе данных SQL Express и все работало нормально ..Сохранение данных ASP.net в 2 базах данных

Позже во время развития мы были в необходимости хранить одну дополнительную информацию о пользователях, то есть: FullName

Для этого мы создали профиль в web.config, как это:

<profile enabled="true"> 
     <properties> 
     <add name="FullName" type="string"/> 
     </properties> 
</profile> 

Он также работал, мы смогли добавить и получить полное имя пользователя легко .. Но, к нашему удивлению, мы обнаружили, что таблица профиля в нашей базе данных пуста. при дальнейшем расследовании мы обнаружили, что информация профиля не сохраняется в наших стандартных базах данных sqlexpress e BUT SAVED в новом aspnetdb.mdf в папке app-code.

Теперь, когда мы создаем нового пользователя, его создаем в обеих базах данных, но информация профиля (то есть: полное имя) сохраняется только в aspnetdb.mdf

Может кто-то ответить, почему это происходит ... ??

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

<membership defaultProvider="CustomizedMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="CustomizedMembershipProvider" 
    connectionStringName="MyConnectionString" 
    applicationName="App209" 
    commandTimeout="60" 
    requiresQuestionAndAnswer="false" 
    requiresUniqueEmail="true" 
    enablePasswordRetrieval="true" 
    enablePasswordReset="true" 
    passwordFormat="Encrypted" 
    maxInvalidPasswordAttempts="5" 
    minRequiredPasswordLength="4" 
    minRequiredNonalphanumericCharacters="0" 
    passwordAttemptWindow="10" 
    passwordStrengthRegularExpression="" 
    type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </providers> 
</membership> 
<roleManager enabled="true" 
     defaultProvider="CustomizedRoleProvider"> 
    <providers> 
    <add name="CustomizedRoleProvider" 
    connectionStringName="MyConnectionString" 
    applicationName="App209" 
    type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </providers> 
</roleManager> 

Любая помощь? Заранее спасибо

ответ

0

Вы должны настроить поставщика профилей для использования вашей строки соединения так же, как и для двух других поставщиков.

<profile defaultProvider="CustomizedProfileProvider" > 
    <providers> 
    <clear/> 
    <add name="CustomizedProfileProvider" connectionStringName="MyConnectionString" applicationName="App209" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </providers> 
</profile> 
+0

Отлично ... это сработало .. Спасибо Грегу за то, что нам не хватало необходимого совета. – Chris

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