ASP.NET Identity vs自定义实现,哪一个使用?

时间:2018-05-18 14:59:28

标签: asp.net .net asp.net-identity owin

我是一个初级筹码,我正在为一个大型SPA(一个人)项目工作,作为我学到的挑战和演示,我有3个问题:

  1. Is generally ASP.NET Identity used在中型/大型项目的公司中,或者他们通常采用自定义实施?

  2. 我想知道it's worth using ASP.NET Identity用户和角色管理or对用户/角色的create custom logic是否更好,我想更多了解并拥有更多控制权。

  3. 如果I'll continue developing with identity,如果我仅将它用于用户和角色管理,那将会很糟糕,因为我看到它也有身份验证API,但我使用OAUTH2,设置令牌就像快,它的工作。那么我是否应该尽可能多地使用Identity在身份验证中对explain the use进行自定义实现?

  4. 你只能回答第一个问题,因为其他两个问题太主观了。谢谢!

1 个答案:

答案 0 :(得分:1)

由于ASP.NET Identity可以自定义,因此您可以从两个世界中获得最佳效果。

在我的公司,我们使用IUserStore的自定义实现,让我们可以灵活地按照我们想要的方式保留用户信息。例如,我们不使用Entity Framework,这是ASP.NET Identity使用的默认数据访问。

在我们的例子中,表格是不同的,它们更适合我们的应用程序的实际用户数据(读取业务对象)。

密码哈希/验证过程也不同等。

您只需将自定义IUserStore的实例传递给ApplicationUserManager,就可以了。

我的个人意见是:使用ASP.NET Identity并仅替换您需要的部分。

编辑: 你也可以实现所有这些

IUserStore<,>
IUserLoginStore<,>
IUserClaimStore<,>
IUserRoleStore<,>
IUserPasswordStore<,>
IUserEmailStore<,>
IUserLockoutStore<,>
IUserTwoFactorStore<,>
IQueryableUserStore<,>

我们也用它进行身份验证。请记住,这已经过测试并将进行更新。是否也有详细记录,任何正在跳跃项目的新开发者都有更大的机会了解正在发生的事情。如果您使用完全自定义的解决方案,则必须保持这一点,并尝试使用最新的趋势/内容进行更新。

希望这有助于做出更好的决定。