创建自定义成员资格提供程序的示例

时间:2012-02-13 15:53:26

标签: asp.net-mvc-3 c#-4.0 membership-provider

我正在编写一个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默认模式。我更愿意使用某种基本代码。我认为这将是一个简单而相当标准的请求,但也许不是。

2 个答案:

答案 0 :(得分:9)

您无法使用自定义提供程序的默认提供程序代码,这就是您实现自定义提供程序的原因,根据您的要求进行调整,使用您自己的数据库表等。

查看我关于custom membershipcustom role提供商和custom membership user的博客文章。这里有一个例子,说明如何使用自己的数据库来获取/设置成员资格信息。

答案 1 :(得分:0)

以下是MSDN上自定义MembershipProvider的示例实现。

http://msdn.microsoft.com/en-us/library/6tc47t75.aspx