背景 - 到目前为止我的理解 - 由于所有成员资格数据都在同一个分区中,因此在用户群增长到数百万之后很可能导致长表扫描。
目前,我仅根据电子邮件和密码将用户注册到我的系统。我还有一个驻留在Azure SQL上的User表,我在应用程序级别保持两者之间的约束。 “外键”是电子邮件地址。
使用会员提供商搜索用户是通过电子邮件而非UserId /密钥完成的。
在主页旁边,网站的其余部分需要进行身份验证,因此我希望会员资格的使用会很重要,但不会很大,因为在身份验证之后,用户会被缓存几分钟。
您是否认为使用基于成员资格的表存储通常是数百万用户的良好做法?
您对我的具体案例有什么建议?
答案 0 :(得分:2)
我记得,桌面会员提供商没有得到官方支持,可能在一段时间内没有更新。因此,除了最基本的演示目的之外,我会犹豫是否使用它。我可能会建议使用Windows Azure Active Directory。此服务对于基本身份管理是免费的,可以轻松集成到应用程序中。 Windows Azure Active Directory也是Office 365使用的相同解决方案,因此它可以非常方便地满足您的需求。
答案 1 :(得分:2)
会员提供商是2005 .NET 2遗物,应该摆脱它的痛苦。它在现代Web架构中没有地位。应用程序应使用基于声明的授权,并将身份卸载到更强大的服务。查看Azure ACS,Azure Active Directory,Thinktecture Identity Server,它们的组合或其他令牌服务。
如果您认真考虑能够扩展到数百万用户,那么您需要认识真的很难关于身份 - 因为它很重要。使用会员提供商将把你画成一个与你的抱负不一致的建筑角落。