我是一个初级筹码,我正在为一个大型SPA(一个人)项目工作,作为我学到的挑战和演示,我有3个问题:
Is generally ASP.NET Identity used
在中型/大型项目的公司中,或者他们通常采用自定义实施?
我想知道it's worth using ASP.NET Identity
用户和角色管理or
对用户/角色的create custom logic
是否更好,我想更多了解并拥有更多控制权。
如果I'll continue developing with identity
,如果我仅将它用于用户和角色管理,那将会很糟糕,因为我看到它也有身份验证API,但我使用OAUTH2
,设置令牌就像快,它的工作。那么我是否应该尽可能多地使用Identity在身份验证中对explain the use
进行自定义实现?
你只能回答第一个问题,因为其他两个问题太主观了。谢谢!
答案 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<,>
我们也用它进行身份验证。请记住,这已经过测试并将进行更新。是否也有详细记录,任何正在跳跃项目的新开发者都有更大的机会了解正在发生的事情。如果您使用完全自定义的解决方案,则必须保持这一点,并尝试使用最新的趋势/内容进行更新。
希望这有助于做出更好的决定。