2012-05-12 2 views
2

Для этого overload:Почему Memberhip.CreateUser не удалось?

если CreateUser("[email protected]","pwd"), не удалось с сообщением об ошибке: Адрес электронной почты является недействительной. Проверьте значение и повторите попытку.

но CreateUser("[email protected]","pwd","[email protected]"), успех!

Почему?

+0

Обновите настройки раздела членства в web.config ... Вам нужно изменить это ... –

+0

В ссылке, которую вы разместили в разделе «Примечания»: '... Если свойство RequiresUniqueEmail является истинным, вы необходимо будет использовать одну из перегрузок CreateUser, которая позволяет указать адрес электронной почты для создаваемого пользователя. В противном случае, MemberhipCreateUserException будет выброшено ' – Equiso

ответ

2

Это может быть лучше думать о методах, как это:

CreateUser(Username, Password); 

CreateUser(Username, Password, Email); 

Не откидывая код, который я не могу сказать на 100% точно, но я буду держать пари, эти функции просто вызвать внутреннюю функцию, принимает все возможные параметры.

Таким образом, ваш первый вызов (упрощенный) на самом деле:

CreateUser("[email protected]", "pwd", null); 

Если вы настроили ваш провайдер требует адрес электронной почты, то, очевидно, null не является действительным.

От MSDN docs:

SqlMembershipProvider предоставляет возможность требовать уникальный адрес электронной почты для каждого пользователя. Если свойство RequiresUniqueEmail равно true, вам нужно будет использовать одну из перегрузок CreateUser, которая позволяет указать адрес электронной почты для создаваемого пользователя. В противном случае выдается исключение MemberhipCreateUserException.

+0

спасибо, Джош. спасибо рефлектор! ха-ха – dfang

Смежные вопросы