如何在 ASP.NET Identity (WebForms) 中使用我自己的数据库

How to use my own database in ASP.NET Identity (WebForms)

我尝试制作一个简单的网络应用程序。用户将很少(一两个)。无需制作复杂的会员资料。我只需要基本的登录过程。我用 Visual Studio 2013

我在互联网上做了一些研究,发现了一些关于 ASP.NET 身份的信息。但是我找不到任何关于如何将身份表安装到我自己的 mssql 数据库的信息。

我以前使用过 ASP.NET 会员资格,使用 aspnet_regsql.exe 并在 web.config

中添加一些代码很容易安装表格

但现在我对身份的东西真的很困惑。它使用默认数据库来存储用户。但是在我的服务器中会有我的 sql 数据库存储我的数据和用户数据。

如何将这两个数据库合二为一?如何将身份表安装到我自己的数据库并配置我的项目以使用它?

听起来您只是希望身份 table 与您的应用程序的其余部分使用相同的数据库。如果您在 Visual Studio 2013 年使用新的 Identity 项目,它应该使用 Entity Framework,这会大大简化事情。

您应该能够通过确保身份代码使用与您自己的数据库上下文相同的连接字符串来实现这一点。如果您将 Web.config 中的 "DefaultConnection" 字符串更改为指向您自己的数据库,Entity Framework 将处理其余部分。

如果您摆脱了 "DefaultConnection" 连接,您可以将 IdentityModels.cs 中使用的字符串(在您项目的模型文件夹中)更改为您的自定义字符串。寻找:

public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)

并更改 base() 中的字符串。

同样,Entity Framework 的神奇之处在于它会自动创建所需的 table 和关系,而无需您自己构建它们。当存在多个上下文时,EF6 也非常擅长处理版本控制,因此除非您摆脱 __MigrationHistory table.

,否则您不应该得到任何 "model changed" 错误

您应该使用 Entity Framework 您可以采用不同的方法,例如代码优先、模型优先、数据库优先。

这会让您的流程更轻松。

这里有一些很好的链接。

How to install

http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application