【问题标题】:ASP .NET MVC Database First Individual User AccountsASP .NET MVC 数据库第一个个人用户帐户
【发布时间】:2017-03-10 18:03:35
【问题描述】:
我正在使用 ASP .NET 开发大型 MVC Web 应用程序。
我把它作为数据库优先,而不是代码优先。
通过使用个人用户帐户身份验证创建 Web 应用程序,它会为其创建模型、视图、控制器和数据库,这非常好
但我想更改迁移以使用我在云中的托管数据库。我尝试将IdentityModel.cs 中的[base("DefaultConnection",...)] 更改为使用托管数据库,并且我还尝试在Web.config 上进行更改
这不是一个好主意! :D
请帮帮我!
【问题讨论】:
标签:
c#
asp.net
asp.net-mvc
authentication
【解决方案1】:
您只需要在您的 Web.config 文件中搜索“DefaultConnection”ConnectionString,将其替换为您的远程服务器的信息,这样就足以连接到您的托管数据库。
应该是这样的:
<add name="DefaultConnection" connectionString="data source=**YourServer**;initial catalog=**YourDatabaseName**;user id=**DatabaseUsername**;password=**DatabasePassword**" providerName="System.Data.SqlClient" />
【解决方案2】:
我和你一样从事一个项目。我正在使用数据库优先方法。创建具有个人用户身份验证的项目后,您需要将这些用户表传输到您的数据库。您可以通过模式比较来做到这一点。
在SQL Server Object Explorer上>找到包含用户表的localdb>右键>Schema Compare
schema compare
然后选择目标(您的数据库)并点击右上角的Compare。
选择要传输到数据库的表。
编辑Web.config文件后:
<add name="DefaultConnection" connectionString="Data Source=YourServerName;Initial Catalog=YourDatabaseName;Integrated Security=True" providerName="System.Data.SqlClient" />
(此connectionString是使用项目提供的默认模型,控制器和动作。如果您想为用户操作创建自己的功能,只需在传输表后添加以下行。)
在这里,提供者名称很重要。不要碰运气。此连接字符串用于用户操作。
然后添加 ADO.NET 实体数据模型以将您的其他表与实体框架一起使用
<add name="YourEntityName" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=YourServerNameL;initial catalog=YourDBName;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
providerName 在这里也很重要。
【解决方案3】:
我将我的 ado.net 添加到(模型文件夹)中
在 web.config 上将我的新连接字符串更改为“DefaultConnection”
在 Dbcontext “my ado.net” 中更改为:base("DefaultConnection")