Поставщик членства - подключаться только к провайдеру по умолчанию? - PullRequest
2 голосов
/ 22 июля 2011

В моей веб-конфигурации у меня определены 2 провайдера членства, один для sql, один для активного каталога. Мой мыслительный процесс состоял в том, что при сборке релиза я устанавливаю AD по умолчанию, но при отладке я использую sql. Это связано с тем, что мой компьютер разработчика не имеет доступа к домену для аутентификации пользователей.

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

Можно ли подключиться только к провайдеру по умолчанию?

Моя неработающая веб-конфигурация выглядит так:

<membership defaultProvider="AspNetSqlMembershipProvider">
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SqlServer" />
    <add name="ActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ActiveDirectoryServer" attributeMapUsername="sAMAccountName"/>

  </providers>
</membership>

Ответы [ 3 ]

2 голосов
/ 18 августа 2011

В вашем файле web.release.config вы можете просто поменять весь раздел членства с информацией AD, а в файле web.config вы можете оставить его как есть или иметь только поставщика SQL.

Для web.release.config:

<system.web>
  <membership defaultProvider="ActiveDirectoryMembershipProvider" xdt:Transform="Replace">
    <providers>
      <clear/>
      <add name="ActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ActiveDirectoryServer" attributeMapUsername="sAMAccountName"/>
    </providers>
  </membership>
</system.web>
1 голос
/ 22 июля 2011

Используете ли вы VS2010?

Как насчет использования преобразований web.config ?

В блоге Скотта Гатри есть также интересная статья .

0 голосов
/ 22 июля 2011

Внутри вашего web.config добавьте поставщика по умолчанию:

    <connectionStrings>
        <add name="ApplicationServices" 
             connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" />
      </connectionStrings>

И внутри вашего web.Release.config добавьте преобразование:

<connectionStrings>
    <add name="ApplicationServices" 
         connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"  
         xdt:Transform="Replace" xdt:Locator="Match(name)"/>
  </connectionStrings>

ПРИМЕЧАНИЕ:

Изменение конфигурации сборки не запускает преобразование, оно работает только при публикации вашего веб-сайта.

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

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