1
CreateUser (string username, string password, string email,
string passwordQuestion, string passwordAnswer, bool isApproved,
object providerUserKey, out MembershipCreateStatus status );


Membership.CreateUser (TextBox1.Text, TextBox2.Text, TextBox3.Text, 
TextBox4.Text, TextBox5.Text, true, out result);

我可以重写CreateUser()函数以添加额外的参数作为年龄和地址并将这些数据存储到我在 ASPNETDB 的成员表中添加的相应列中吗

4

2 回答 2

1

您必须创建您使用的成员资格提供程序的子类,并提供一个附加CreateUser方法,该方法采用创建用户所需的参数。

public class MyMembershipProvider : SqlMembershipProvider
{
    public MembershipUser CreateUser(/* your custom arguments*/)
    {

    }
}

创建一个扩展方法来调用您的方法。

public static MembershipUser CreateUser(this Membership membership, /* your custom arguments*/)
{
       ((MyMembershipProvider)membership.Provider).CreateUser(/* your custom arguments*/);
}

然后,您可以将其用作CreateUser方法的 orverload。

Membership.CreateUser(/* your custom arguments*/);
于 2012-05-06T03:45:25.873 回答
1

参考 Eranga 的建议:

这不起作用,静态类型不能用作参数。CreateUser据我所知,如果不编写自己的自定义提供程序,则无法覆盖该方法,然后使用您自己的参数创建一个公共 CreateUser 方法,然后将提供程序转换为调用您的方法,如下所示:

((MyMembershipProvider)Membership.Provider).CreateUser(/* my parameters */)
于 2012-06-12T19:32:12.323 回答