Настройка AspNetSqlProvider по умолчанию для указания на удаленную базу данных - PullRequest
6 голосов
/ 06 декабря 2008

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

Я запустил aspnet_regsql и смог создать базу данных членства на удаленном сервере, но когда я перехожу к настройке ASPNET (сервер разработки cassini), он не подключается к удаленному серверу.

Ответы [ 4 ]

18 голосов
/ 06 декабря 2008

После долгих поисков я обнаружил, что поставщик членства по умолчанию, указанный в machine.config (c: \ windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG), всегда указывает на SQL-сервер, работающий на локальном хосте.

Вместо модификации machine.config есть способ настроить его в проектах web.config:

1) Настройка строки подключения к удаленной базе данных

    <connectionStrings>
      <add name="aspnet_membership" connectionString="<your_connection_string>"/>
    </connectionStrings>

2) В <system.web> переопределить поставщика по умолчанию:

  <membership>
    <providers>
        <remove name="AspNetSqlMembershipProvider"/>
        <add name="AspNetSqlMembershipProvider" 
            type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
            connectionStringName="aspnet_membership"
            enablePasswordRetrieval="false" 
            enablePasswordReset="true" 
            requiresQuestionAndAnswer="true" 
            applicationName="/" 
            requiresUniqueEmail="false" 
            passwordFormat="Hashed" 
            maxInvalidPasswordAttempts="5" 
            minRequiredPasswordLength="7" 
            minRequiredNonalphanumericCharacters="1" 
            passwordAttemptWindow="10" 
            passwordStrengthRegularExpression=""/>
    </providers>
  </membership>

Ключ <remove name="AspNetSqlMembershipProvider"/> является ключевым! Все остальные ключи / значения были взяты непосредственно из machine.config

2 голосов
/ 04 февраля 2013
<membership>
       <providers>
           <clear/>
           <add name="AspNetSqlMembershipProvider"
               type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               connectionStringName="aspnet_membership"
               enablePasswordRetrieval="false"
               enablePasswordReset="true"
               requiresQuestionAndAnswer="true"
               applicationName="/"
               requiresUniqueEmail="false"
               passwordFormat="Hashed"
               maxInvalidPasswordAttempts="5"
               minRequiredPasswordLength="7"
               minRequiredNonalphanumericCharacters="1"
               passwordAttemptWindow="10"
               passwordStrengthRegularExpression=""/>
       </providers>
   </membership>

Мне нужно было добавить эти строки, чтобы мои сотрудники по ролям и профилю основывались на работе класса Членства:

   <profile>
       <providers>
           <clear/>
           <add name="AspNetSqlProfileProvider"
           connectionStringName="aspnet_membership"
           applicationName="/"
           type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
       </providers>
   </profile>

   <roleManager enabled="true">
       <providers>
           <clear/>
           <add name="AspNetSqlRoleProvider"
           connectionStringName="aspnet_membership"
           applicationName="/"
           type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
           <add name="AspNetWindowsTokenRoleProvider"
           applicationName="/"
           type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
       </providers>
   </roleManager>   
1 голос
/ 12 мая 2011

шаг 2: скопируйте это:

<remove name="LocalSqlServer"/>

<add name="LocalSqlServer" connectionString="Data Source=VMK\sqlexpress;Initial Catalog=commodity_exchange;Integrated Security=True" providerName="System.Data.SqlClient"/>

0 голосов
/ 12 мая 2011

Вот решение:

шаг 1: запуск командной строки Visual Studio Тип: aspnet_regsql Укажите ваш сервер: если sqlexpress, то сервер = имя хоста \ sqlexpress *********** Использовать проверку подлинности Windows

шаг 2. Скопируйте это в веб-конфигурацию. Не указывайте имя пользователя или пароль, потому что при подключении через Windows-аутентификацию мы встроили security = true.

шаг 3. Измените параметры безопасности> Тип аутентификации в инструменте веб-администрирования на «Из Интернета».

Наслаждайся сейчас.

...