throw new ProviderException(exceptionMessage);
}
else
{
throw e;
}
}
finally
{
conn.Close();
}
}
修改 CreateUser 方法
使用自定义成员资格用户类型和自定义成员资格提供程序时,该自定义成员资格提供程序必须实现 CreateUser 方法,该方法仅采用 MembershipUser 类支持的属性作为输入。可以创建采用其他属性值的 CreateUser 方法的重载,如下面的代码示例所示。
但是,Membership 类或依赖 Membership 类的控件(如 CreateUserWizard 控件)不会调用此重载。若要从应用程序调用此方法,请将 Membership 类引用的 MembershipProvider 实例强制转换为自定义成员资格提供程序类型,然后直接调用 CreateUser 重载。
如果您的应用程序使用 CreateUserWizard 控件向成员资格数据源中添加新用户,则可以自定义 CreateUserWizard 控件的向导步骤,以包括检索自定义成员资格用户的其他属性值的控件。然后可以处理 CreateUserWizard 控件的 CreatedUser 事件并添加执行下列操作的事件代码:
检索其他成员资格用户的属性值。
将 CreateUserWizard 控件创建的成员资格用户强制转换为自定义成员资格用户类型。
设置成员资格用户的其他属性。
将更新的用户传递给 Membership 类的 UpdateUser 方法。这将调用自定义提供程序的 UpdateUser 方法(该方法在本主题前面的修改 UpdateUser 方法部分中进行了介绍),以便向数据源中添加其他属性值。
注意
有关修改 CreateUserWizard 步骤的示例,请参见如何:自定义 ASP.NET CreateUserWizard 控件。
下面的代码示例演示如何:演示成员资格提供程序实现中示例成员资格提供程序的修改后的 CreateUser 方法,该方法已进行了更新,以便返回本主题前面创建自定义成员资格用户部分中的自定义成员资格用户类型。已创建了重载,以便采用自定义成员资格提供程序的其他属性的值作为输入。
Visual Basic 复制代码''
'' MembershipProvider.CreateUser
''
Public Overrides Function CreateUser(ByVal username As String, _
ByVal password As String, _
ByVal email As String, _
ByVal passwordQuestion As String, _
ByVal passwordAnswer As String, _
&nb