IdentityUser与我的自定义用户表

本文关键字:用户 自定义 我的 IdentityUser | 更新日期: 2023-09-27 18:30:01

我有一个PHP/MMySQL系统,我正在使用Azure SQL将其移植到ASP.NET MVC5。我很难理解微软推出的新身份解决方案的概念。由于数据库结构存在于以前的系统中,我已将旧的MySQL数据库转移到Azure SQL。到目前为止还不错。我有一个用户表,其中包含所有与用户相关的数据,如用户名、电子邮件密码等。由于我想继续使用此表,我创建了Identity用户表中存在的额外数据库字段。我还创建了自定义UserManager和其他类(MyUser、MyClaim等),这样我就可以登录了。一切都正常。

由于我有一种数据库优先的方法,而不是代码优先的方法。所以我想使用User类与用户表进行交互。但是我的UserManager返回MyUser类(继承自IdentityUser),而不是我的模型中的User类。当我请求User表中的所有用户时,甚至我的dbcontext也会返回MyUser类。

我真的需要手动更新MyUser类来复制User表吗?因此,如果我在User表中进行更改并更新我的模型,我必须手动更新MyUser类,因为系统不能/不会使用模型用户类?

IdentityUser与我的自定义用户表

IdentityUser表示默认的EntityFramework IUser实现。由于您有自己的现有架构,您将不得不手动滚动一些类来实现ASP.NET Identity以使用自己的表。

为了将User类与ASP.NET Identity一起使用,您需要确保它继承自Microsoft.AspNet.Identity.IUser。实现IUser后,使用对User类的引用更新对MyUser的所有引用。注意:为了清楚起见,您可能需要将User类更新为类似MyAppNameUser的类。

完成上述操作后,您可能需要实现IUserStore,以便UserManager类可以与您的数据库模式进行交互。

你可能想看看https://github.com/raquelsa/AspNet.Identity.MySQL以获得有关实现某些ASP.NET Identity接口的一些想法。