Почему запятые не допускаются в имени пользователя при использовании SqlMembershipProvider? - PullRequest
1 голос
/ 02 апреля 2012

Хотя НЕ задокументировано как часть метода CreateUser на MSDN, SqlMembershipProvider выдает исключение ArgumentException, если вы пытаетесь сделать что-либо с именем пользователя, содержащим запятую (включая попытку созданияПользователь).Запятые в паролях, кажется, в порядке.Мой вопрос почему?

System.ArgumentException: The parameter 'username' must not contain commas.

Редактировать: Как указано в stackoverflow , одной из таких причин использования запятых может быть то, что при необычных адресах электронной почты CAN содержит запятые.

1 Ответ

1 голос
/ 02 апреля 2012

Моя ставка заключается в том, что пароли хешируются, а имена пользователей - нет. У меня нет резервной копии на это, однако. Представьте, что вы хотите объединить пользовательский ввод в строку, и несколько полей разделены запятыми. Не проще ли ограничить запятые, а не найти нелепый способ экранирования и / или кодирования запятой в середине строки?

EDIT: фактически, в методе UpdateUser задокументировано, что имя пользователя не может содержать запятую. Однако они до сих пор не объясняют, почему существует ограничение. Это из раздела, когда выбрасывается ArgumentException:

Свойство UserName пользователя представляет собой пустую строку (""), содержит запятая или длиннее 256 символов.

...