如何设置ASP.NET Identity以使用自己的连接字符串? [英] How do I setup ASP.NET Identity to use my own connection string?
问题描述
我有一个使用EF的MVC5应用.我想添加ASP.NET身份,并且我已经注意到ASP.NET身份的连接字符串正在使用"DefaultConnection".我需要怎么做才能在MVC5Entities
和NOT DefaultConnection => (LocalDb)\v11.0
中指定的现有数据库(source = DILS-S1301; initial catalog = MVC5;)中创建ASP.NET标识表?
谢谢
I have an MVC5 app that's using EF. I would like to add ASP.NET Identity and I've noticed that the connection string for ASP.NET identity is using "DefaultConnection". What Do I need to do so that ASP.NET Identity tables are created in my already existing db (source=DILS-S1301;initial catalog=MVC5;) as specified in MVC5Entities
and NOT DefaultConnection => (LocalDb)\v11.0
??
thanks
<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="data source=DILS-S1301;initial catalog=MVC5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
我尝试像这样修改"DefaultConnection":
I tried modifying "DefaultConnection" like so:
<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="data source=DILS-S1301;initial catalog=MVC5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
但是现在我得到一个错误:
but now i get an error:
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'.
推荐答案
实际的问题应该是如何设置ASP.NET Identity以使用我自己的连接字符串?"
如果上面是您问题的正确摘要,则下面是答案.
ASP.NET Identity使用EntityFramework来完成与数据库相关的任务.因此,您可以根据需要使用以下选项.
ASP.NET Identity uses EntityFramework for database related tasks. So you can use following option as suitable.
选项1 :可以使用web.config中的以下代码段设置EntityFramework的默认连接字符串
Option 1: EntityFramework's default connection string can be setup using following code snippet in 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)
Option 2: Programatically, you can also pass ConnectionString name to the DbContext's constructor. like new ApplicationDbContext(MyConnectionString)
这篇关于如何设置ASP.NET Identity以使用自己的连接字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!