我是一个初级全栈,我正在做一个大型SPA(一个人(项目,作为我所学知识的挑战和演示,我有3个问题:
-
Is generally ASP.NET Identity used
在大中型项目的公司中,还是通常采用定制实施? -
我想知道用户和角色管理
or
it's worth using ASP.NET Identity
是否更适合为用户/角色create custom logic
,我想了解更多信息并拥有更多控制权。 -
如果
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也有很好的文档记录,任何跳入该项目的新开发人员都有更大的机会知道正在发生的事情。如果您使用完全自定义的解决方案,则必须维护它并尝试使其与最新趋势/内容保持更新。
希望这有助于做出更好的决定。