我正在编写一个MVC 3应用程序,我正在尝试实现自己的自定义成员资格提供程序(遵循Apress’Pro ASP.NET MVC 3 Framework中的示例).
我创建了自定义类,继承自MembershipProvider并且(使用ReSharper)使用NotImplementedExceptions实现了所有27个方法.
现在,我已经覆盖了ValidateUser方法,因为书中说明并且它工作正常,但我想让我的提供者更强大并实现其他方法(例如设置MinrequiredPasswordLength和GetNumberOfUsersOnline).
是否有一些示例代码可用于开始填充这些方法,我可以调整以适应我自己的DB / Model模式?
我当然可以使用反复试验来解决这个问题,但基本代码示例会有很大帮助.
编辑:
这个问题只是两次被投票.如果您要进行投票,请发表评论,说明为什么我可以努力改进我的问题.
编辑2:
例如,对于以下方法:
public override int GetNumberOfUsersOnline() { throw new System.NotImplementedException(); }
我可以尝试从头开始编写代码来查看一些网络日志,确定用户登录时间和近似值,如果它们仍在使用,但这需要花费大量时间让我弄明白.由于所有这些代码都来自Microsoft为标准sqlMembershipProvider编写的相同接口,因此不存在包含此方法的代码(甚至来自MS)吗?如果是这样,我想要它,修改它,以便它使用我的数据库架构而不是aspnetdb默认架构.我更愿意使用某种基本代码.我认为这将是一个简单而相当标准的要求,但也许不是.
解决方法
您不能使用自定义提供程序的默认提供程序代码,这就是您实现自定义提供程序的原因,根据您的要求进行调整,使用您自己的数据库表等.
看一下我关于custom membership,custom role供应商和custom membership user的博客文章.这里有一个例子,说明如何使用自己的数据库来获取/设置会员信息.