【发布时间】:2009-10-21 15:37:35
【问题描述】:
我创建了一个自定义成员资格提供程序,其中包含一个自定义 CreateUser 方法,该方法接受一个额外的参数,如下所示:
public class CustomMembershipProvider : MembershipProvider
{
// code
public override MembershipUser CreateUser(string username,
string password, etc...)
{
// does nothing
}
public MembershipUser MyCreateUser(string username,string password,string COMPANY, etc...)
{
// validades the fields and inserts the user in the db
}
}
现在我想使用“创建用户向导”控件插入用户,并带有那个额外的字段。 我已将控件扩展到这样的内容:
public class CustomCreateUser : CreateUserWizard
{
public CustomCreateUser(): base()
{
}
protected override void OnCreatingUser(LoginCancelEventArgs e)
{
MembershipUser newUser = ((CustomMembershipProvider)Membership.Provider).MyCreateUser(username,password,company, etc...)
}
}
问题是在调用了这个 OnCreatingUser 之后,控件在内部调用了提供者的默认 CreateUser(什么都不做的那个)方法,因为用户已经被插入而抛出错误......
是否可以通过覆盖 CustomCreateUser 中的方法来阻止第二次调用?
提前致谢
【问题讨论】:
标签: c# asp.net asp.net-membership