如何设置ASP.NET MVC身份用自己的连接字符串? [英] How do I setup ASP.NET MVC Identity to use my own connection string?
问题描述
我有一个使用EF的MVC5应用程序。我想补充的ASP.NET的身份和我注意到,对于ASP.NET身份连接字符串使用DefaultConnection。什么我需要做的,这样ASP.NET标识表在我现有的数据库创建(来源= DILS-1301;初始目录= MVC5;)作为 MVC5Entities
规定和NOT DefaultConnection => (的LocalDB)\\ V11.0
??
谢谢
<&是connectionStrings GT;
<添加名称=DefaultConnection的connectionString =数据Source=(LocalDb)\\v11.0;AttachDbFilename=|DataDirectory|\\aspnet-MySuperAwesomeMVCApp-20131105011429.mdf;Initial目录= ASPNET-MySuperAwesomeMVCApp-20131105011429;集成安全性=真的providerName =System.Data.SqlClient的/>
<添加名称=MVC5Entities connectionString=\"metadata=res://*/Models.Mvc5Model.csdl|res://*/Models.Mvc5Model.ssdl|res://*/Models.Mvc5Model.msl;provider=System.Data.SqlClient;provider连接字符串=安培; QUOT;数据源= DILS-1301;初始目录= MVC5;集成安全=真; MultipleActiveResultSets = TRUE;应用=&的EntityFramework放大器; QUOT;的providerName =System.Data.EntityClient/>
< /&是connectionStrings GT;
我试图修改DefaultConnection像这样:
<&是connectionStrings GT;
<添加名称=DefaultConnection的connectionString =数据源= DILS-1301; AttachDbFilename = | DataDirectory目录| \\ MVC5.mdf;初始目录= MVC5;集成安全性=真的providerName =System.Data.SqlClient的/>
<添加名称=MVC5Entities connectionString=\"metadata=res://*/Models.Mvc5Model.csdl|res://*/Models.Mvc5Model.ssdl|res://*/Models.Mvc5Model.msl;provider=System.Data.SqlClient;provider连接字符串=安培; QUOT;数据源= DILS-1301;初始目录= MVC5;集成安全=真; MultipleActiveResultSets = TRUE;应用=&的EntityFramework放大器; QUOT;的providerName =System.Data.EntityClient/>
< /&是connectionStrings GT;
但现在我得到一个错误:
数据库C:\\ Program Files文件\\ Microsoft SQL Server的\\ MSSQL10_50.MSSQLSERVER \\ MSSQL \\ DATA \\ MVC5.mdf'已经存在。选择不同的数据库名称。
无法附加文件C:\\用户\\等等\\文档\\的Visual Studio 2013 \\项目\\ MySuperAwesomeMVCApp \\ MySuperAwesomeMVCApp \\ App_Data文件\\ MVC5.mdf'数据库'MVC5。
的实际的问题应该是我如何设置ASP.NET身份用自己的连接字符串?的
块引用>的如果上面是你的问题的正确总结,下面就是答案。的
ASP.NET身份使用的EntityFramework数据库相关的任务。所以,你可以使用下面的选项为宜。
选项1 :的EntityFramework的默认连接字符串,可以使用以下设置在web.config中code段
<&的EntityFramework GT;
< defaultConnectionFactory TYPE =System.Data.Entity.Infrastructure.SqlConnectionFactory,的EntityFramework>
<&参数GT;
<参数值=数据源=(的LocalDB)\\ V11.0;集成安全性= TRUE; MultipleActiveResultSets = TRUE/>
< /参数>
< / defaultConnectionFactory>
< /&的EntityFramework GT;选项2 :编程方式,您也可以通过ConnectionString的名字到的DbContext的构造。像
新ApplicationDbContext(MyConnectionString)
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 NOTDefaultConnection => (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>
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'.
解决方案The actual question shall be "How do I setup ASP.NET Identity to use my own connection string?"
If above is the correct summary of your question, below is the answer.
ASP.NET Identity uses EntityFramework for database related tasks. So you can use following option as suitable.
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>
Option 2: Programatically, you can also pass ConnectionString name to the DbContext's constructor. like
new ApplicationDbContext(MyConnectionString)
这篇关于如何设置ASP.NET MVC身份用自己的连接字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!