2010-08-24 45 views
8

我一直远离asp.net会员,因为它似乎臃肿,(当时)无法测试。特别是在asp.net MVC的情况下,是否有人使用替代解决方案为用户分配角色,并为登录用户存储一些附加信息?任何建议?仅仅推出自己的产品,实施你需要的功能是否疯狂?ASP.NET会员替代

+0

如果您需要替代方案,那么您可能有一些原因...可以与我们分享吗?您想使用的asp.net会员中缺少什么? – 2010-08-24 21:29:42

+3

我不知道它是如何“臃肿”。如果有的话,它在角色方面有点吝啬。 – Greg 2010-08-24 21:31:07

+0

您可以将列添加到由aspnet_regsql生成的表中,并且它工作得很好。然后,您可以根据实体模型以某种方式引用表格。这样,您仍然可以使用ASP.NET的成员资格提供程序来满足您的需求,但是您也可以从存储的其他信息中受益。 – Andrew 2010-08-24 22:17:00

回答

3

ASP.NET成员身份使用存储提供程序模型。 SqlMembershipProvider继承了抽象MembershipProvider类中的加密/散列密码功能。但是你也可以从MembershipProvider继承,如果你愿意,可以在自定义提供者中获得该功能。

如果您使用SqlMembershipProvider,您将得到一个完整的密码管理(检查,更改,重置,无效密码尝试)和用户管理(CRUD操作,锁定用户)的完全正常工作的成员数据库。

所有这些都在API级别。您可以根据API创建任何您想要的UI。

使用SqlMembershipProvider并不要求您使用角色提供者或配置文件提供者或其他任何东西,并且您可以在不影响成员身份的情况下为自己推出自己的东西。至少我会建议使用经过充分测试的SqlMembershipProvider作为基本内容的安全核心。

+0

我想这个问题是当你需要扩展它。或者,您现有的模式与SqlMembershipProvider数据库不匹配。 – Roco72 2010-08-25 17:56:15

+0

扩展SqlMembershipProvider可能会有问题。我个人在主要在Oracle上运行的应用程序中使用SqlMembershipProvider。这些表只是坐在自己的小数据库中,不用担心主要的业务数据库,它似乎对我很好。 – Greg 2010-08-25 18:59:29

0

我已成功实施DotNetOpenAuth作为成员资格和角色提供者。这不是一个完整的实现,而是处理大多数常见的场景。

他们提供VS模板来帮助您入门。