Подтвердить что ты не робот

Как настроить удостоверение ASP.NET для использования собственной строки подключения?

У меня есть приложение MVC5, использующее EF. Я хотел бы добавить идентификатор ASP.NET, и я заметил, что строка подключения для идентификации ASP.NET использует "DefaultConnection". Что мне нужно сделать, чтобы таблицы ASP.NET Identity создавались в моем уже существующем db (исходный = DILS-S1301; начальный каталог = MVC5;), как указано в MVC5Entities и NOT DefaultConnection => (LocalDb)\v11.0? спасибо

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MySuperAwesomeMVCApp-20131105011429.mdf;Initial Catalog=aspnet-MySuperAwesomeMVCApp-20131105011429;Integrated Security=True" providerName="System.Data.SqlClient"      />
    <add name="MVC5Entities" connectionString="metadata=res://*/Models.Mvc5Model.csdl|res://*/Models.Mvc5Model.ssdl|res://*/Models.Mvc5Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DILS-S1301;initial catalog=MVC5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

Я попытался изменить "DefaultConnection" следующим образом:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=DILS-S1301;AttachDbFilename=|DataDirectory|\MVC5.mdf;Initial Catalog=MVC5;Integrated Security=True" providerName="System.Data.SqlClient" />
    <add name="MVC5Entities" connectionString="metadata=res://*/Models.Mvc5Model.csdl|res://*/Models.Mvc5Model.ssdl|res://*/Models.Mvc5Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DILS-S1301;initial catalog=MVC5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

но теперь я получаю сообщение об ошибке:

Database 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MVC5.mdf' already exists. Choose a different database name.
Cannot attach the file 'C:\Users\blah\Documents\Visual Studio 2013\Projects\MySuperAwesomeMVCApp\MySuperAwesomeMVCApp\App_Data\MVC5.mdf' as database 'MVC5'.
4b9b3361

Ответ 1

Реальный вопрос: "Как настроить идентификатор ASP.NET для использования моей собственной строки подключения?"

Если выше приведено правильное резюме вашего вопроса, ниже приведен ответ.

Идентификатор ASP.NET использует EntityFramework для задач, связанных с базой данных. Таким образом, вы можете использовать следующий вариант как подходящий.

Вариант 1: Строка подключения по умолчанию EntityFramework может быть настроена с использованием следующего фрагмента кода в web.config

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True" />
    </parameters>
  </defaultConnectionFactory>
</entityFramework>

Вариант 2. Программно вы также можете передать имя ConnectionString в конструктор DbContext. как new ApplicationDbContext(MyConnectionString)

Ответ 2

На самом деле все, что вам нужно сделать, это изменить значение ConnectionConnection connectionString как желаемую строку соединения. Если вы использовали обычные настройки для нового проекта MVC 5, а таблицы идентификации не существуют в новой базе данных, они будут созданы там автоматически.

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

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

Я нашел эту статью полезной: http://www.typecastexception.com/post/2013/10/27/Configuring-Db-Connection-and-Code-First-Migration-for-Identity-Accounts-in-ASPNET-MVC-5-and-Visual-Studio-2013.aspx