0

我在 Web 表单上工作了 4 年后才开始使用 MVC。我看过一些解释架构/基础的视频,现在我可以使用 EF6 使用 MVC5 复制我的旧项目的几个模块。

我有一个 SQL Server 数据库,其中包含诸如专辑/艺术家/标题/评论之类的表和他的用户表。我能够使用 EF6 处理第一组表,包括插入/删除。上一个项目我使用 BCrypt 实现了自定义 Web 表单身份验证,方法是将详细信息存储在 User 表中,然后进行验证并设置身份验证 cookie。

User 表包含诸如 UserId、PWHash、EMail、FirstName、LastName 等详细信息。UserId 是评论表和其他几个表中的 FK。

我希望的实现如下:

  1. Login screen accepts credentials and validates with existing User table.
  2. If valid, move to the 2FA screen(eMail/SMS).
  3. If valid, then allow access to application.

大多数教程都说如何扩展 FirstName/LastName 等属性,但没有说明如何使用现有数据库。我打算使用 bcrypt/scrypt 来加密敏感细节。

我已经完成了MVC 5 和 ASP.NET Identity - Implementation Confusion,但 id 并没有我的查询的所有答案

我只需要关于如何插入现有数据库而不是使用默认提供的 dbcontext 的起点

4

2 回答 2

1

就我个人而言,当您远离传统时,我发现文档也非常令人沮丧,因此您可能会陷入痛苦的世界。

最简单的方法是自己完全控制身份验证过程,使用FormsAuthentication

但是,如果您想利用 MVC5 提供的大量开箱即用代码,但针对自定义数据库或模式,您可能必须实现自己的 UserStore 和UserManager等。

问题是,有很多事情要实现,所以保证你会玩得很开心。

阅读有关自定义存储提供程序的这篇文章,以抢占先机。

祝你好运

于 2014-10-16T03:18:32.073 回答
0

如果您的应用程序使用 EF Code First,那么您可以使用现有架构并插入您自己的用户。查看以下示例,该示例显示了如何重用现有用户信息并将其插入 Identity http://aspnet.codeplex.com/SourceControl/latest#Samples/Identity/CustomMembershipSample/Readme.txt

您不必从 IdentityDbContext 继承。您可以直接使用 DbContext。在这种情况下,您将必须覆盖 onModelCreating 以创建用户/角色表以及表之间的所有映射。

于 2014-10-16T03:28:17.477 回答