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

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 に答える