ASP.NET 标识与自定义实现,使用哪一个?



我是一个初级全栈,我正在做一个大型SPA(一个人(项目,作为我所学知识的挑战和演示,我有3个问题:

  1. Is generally ASP.NET Identity used在大中型项目的公司中,还是通常采用定制实施?

  2. 我想知道用户和角色管理orit's worth using ASP.NET Identity是否更适合为用户/角色create custom logic,我想了解更多信息并拥有更多控制权。

  3. 如果I'll continue developing with identity,如果我仅将其用于用户和角色管理,那就不好了,因为我看到它也具有身份验证 API,但我使用OAUTH2,设置令牌就像很快并且它正在工作。那么我是否应该尝试在身份验证中尽可能多地使用 Identity,以explain the use这个框架而不是自定义实现?

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

由于 ASP.NET 身份是非常可定制的,你可以从两个世界中获得最好的。

在我的公司中,我们使用IUserStore的自定义实现,使我们能够灵活地以所需的方式保存用户信息。例如,我们不使用实体框架,它是 ASP.NET 标识使用的默认数据访问。

在我们的例子中,表是不同的,它们更好地匹配我们应用程序的实际用户数据(读取业务对象(。

密码散列/验证过程也不同,等等。

您只需要将自定义IUserStore的实例传递给ApplicationUserManager即可。

我个人的看法是:使用 ASP.NET 身份,只更换你需要的零件。

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

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

我们也使用它进行身份验证。请记住,这已经过测试并将更新。IS也有很好的文档记录,任何跳入该项目的新开发人员都有更大的机会知道正在发生的事情。如果您使用完全自定义的解决方案,则必须维护它并尝试使其与最新趋势/内容保持更新。

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

相关内容

最新更新