2012-05-06 3 views
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() функцию, чтобы добавить дополнительные параметры, как возраст и адрес и хранить эти данные в corresponing Столбцы, которые я добавил в таблице членства в ASPNETDBКак добавить параметр Membership.CreateUser()

+0

Если эти методы были static вы не можете переопределить эти функции. –

ответ

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*/); 
} 

Затем вы можете использовать его в качестве orverload метода CreateUser.

Membership.CreateUser(/* your custom arguments*/); 
+0

// Для примера мне нужна эта подпись, где код для этого: public MembershipUser CreateUser (строка имя пользователя, строковый пароль, строка confirmpassword, строка email, строка passwordQuestion, строка passwordAnswer, string age, string address , string deptid, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { 10} –

+0

Эранга, это необходимо для реализации функции с нуля ?? !! –

+0

@SherifEzzat Это правильный способ сделать это. В Framework не предусмотрен механизм включения настраиваемых аргументов по вашему выбору. Поэтому вам нужно реализовать его самостоятельно. Тесное следование структуре структуры сделает ваш код более доступным, читаемым и поддерживаемым. – Eranga

1

В связи с предложением Eranga по:

Это не будет работать, статические типы не могут быть использованы в качестве параметров. Насколько я знаю, вы не можете переопределить метод CreateUser без написания собственного пользовательского поставщика, а затем создать публичный метод CreateUser с вашими собственными параметрами, а затем отливкой поставщика для вызова метода следующим образом:

((MyMembershipProvider)Membership.Provider).CreateUser(/* my parameters */) 
Смежные вопросы