提供一个示例,演示如何用自定义成员资格提供程序来扩展 MembershipUser 类。
尽管用户 System.Web.Profile 提供了一种用于将每个用户的信息存储在 Web 应用程序中的方便机制,但应用程序的设计可能还要求将用户身份验证信息及其他用户信息存储在 Membership 数据存储区中。在这种情况下,将需要生成一个自定义成员资格提供程序,以便在数据存储区中存储和检索用户身份验证信息和其他用户值(有关自定义成员资格提供程序的示例,请参见实现成员资格提供程序)。此外,还可以扩展 MembershipUser 类,使添加的用户值可用于应用程序代码。
创建自定义成员资格用户包括下列任务:
创建一个继承 MembershipUser 类的类。
创建一个数据源以存储身份验证信息和其他用户设置。
为数据存储区创建一个自定义成员资格提供程序。该自定义成员资格提供程序将包含其他代码,这些代码可以采用自定义成员资格用户类型的对象作为输入,并且返回自定义成员资格用户类型的对象。
本主题中的示例演示如何修改如何:演示成员资格提供程序实现中的自定义成员资格提供程序示例,以支持自定义成员资格用户实现。
创建自定义成员资格用户
可以创建一个自定义成员资格用户,方法是创建一个继承 MembershipUser 类的类,然后包括公开其他用户值的属性。此外,还可以向 MembershipUser 类添加方法和事件。
调用 Membership 类以创建自定义 MembershipUser 的实例时,将只调用由 MembershipUser 类定义的构造函数。如果 MembershipUser 实现包括其他构造函数重载,则这些构造函数只能由为调用自定义构造函数而专门编写的应用程序代码调用。
下面的代码示例演示一个继承 MembershipUser 类的简单自定义成员资格用户,并提供两个其他属性:IsSubscriber 和 CustomerID,前者是布尔属性,标识用户是否为 Web 应用程序订阅服务或新闻稿;后者包含单独客户数据库的唯一标识符。
Visual Basic 复制代码Imports System
Imports System.Web.Security
Namespace Samples.AspNet.Membership.VB
Public Class OdbcMembershipUser
Inherits MembershipUser
Private _IsSubscriber As Boolean
Private _CustomerID As String
Public Property IsSubscriber() As Boolean
Get
Return _IsSubscriber
End Get
Set(ByVal value As Boolean)
_IsSubscriber = value
End Set
End Property
Public Property CustomerID() As String
Get
Return _CustomerID
End Get
Set(ByVal value As String)
&n