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

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

问题描述

我有一个使用 EF 的 MVC5 应用程序.我想添加 ASP.NET 标识,我注意到 ASP.NET 标识的连接字符串使用DefaultConnection".我需要做什么才能在我现有的数据库(源 = DILS-S1301;初始目录 = MVC5;)中创建 ASP.NET 标识表,如 MVC5Entities 和 NOT DefaultConnection 中所指定=>(LocalDb)v11.0??谢谢

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>

我尝试像这样修改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=&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 FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAMVC5.mdf' already exists. Choose a different database name.
Cannot attach the file 'C:UserslahDocumentsVisual Studio 2013ProjectsMySuperAwesomeMVCAppMySuperAwesomeMVCAppApp_DataMVC5.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:EntityFramework 的默认连接字符串可以使用 web.config 中的以下代码片段进行设置

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屋!

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