ASP.net членство сохранения данных в 2 базах данных - PullRequest
0 голосов
/ 10 февраля 2011

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

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

создал профиль в web.config следующим образом:

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

Это также сработало, мы смогли легко добавить и получить полное имя пользователя. Но, к нашему удивлению, мы обнаружили, что таблица профилейв нашей базе данных пусто .. при дальнейшем исследовании мы обнаружили, что информация профиля не сохраняется в нашей обычной базе данных sqlexpress, НО СОХРАНЯЕТСЯ в новом aspnetdb.mdf в папке кода приложения ..

мы создаем нового пользователя, он создается в обеих базах данных, но информация профиля (т.е. полное имя) сохраняется только в 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>

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

1 Ответ

0 голосов
/ 10 февраля 2011

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

<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>
...