如何设置ASP.NET MVC身份用自己的连接字符串? [英] How do I setup ASP.NET MVC Identity to use my own connection string?

查看:171
本文介绍了如何设置ASP.NET MVC身份用自己的连接字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用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 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=&quot;data source=DILS-S1301;initial catalog=MVC5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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=&quot;data source=DILS-S1301;initial catalog=MVC5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆