我在一个小团队的开发人员的工作,并没有达成一致的核心任务,其中一个是成员资格提供商的最佳方法的共识。现在我不能确定这是否涉及到缺乏替代思维方式或足够规模的项目以保证进行重大调查。SqlMembershipProvider vs自定义解决方案
我一直是一个.NET网络开发人员多年(以及之前的PHP和ASP经典),并且通常在开发应用程序时,我害怕使用内置的.net SqlMembershipProvider
,这主要是因为它经常显得过分其次,因为我只能想象这样一个复杂的数据模型可能会有性能问题。
通常我使用一个自定义成员资格和角色提供程序在相当简单的user -> user roles <- roles
类型模式上运行。根据相关应用程序的需求,我维护标准的成员资格提供程序功能,例如帐户恢复,配置文件详细信息,失败的登录帐户锁定,秘密问题等,例如AD安全应用程序具有少量附加功能,面向公众的应用程序通常具有商场。这也意味着任何需要存储过程的任务都需要咀嚼用户数据,这些任务很容易编写和执行。直接的SQL命令,良好的索引和简单的数据模型导致高性能,可伸缩的解决方案,这应该需要改变我完全可以控制需要改变,我认为这是非常宝贵的。
根据你的经验,你会说这是一个过时的方法?内置提供程序是否存在可扩展性问题?你通常采取什么方法以及在什么情况下?
感谢
经过MS和世界各地开发者的充分测试。 – gbs 2011-03-26 21:22:31
@gbs:极好的一点。滚动你自己的用户认证框架就像是在滚动你自己的加密系统。好钱说你并不比编写世界上其他人使用的东西更聪明。 – StriplingWarrior 2011-03-26 21:26:38
很好的答案,谢谢! – Hawxby 2011-03-26 21:26:49