参数“username”不得包含逗号。参数名称:用户名

时间:2010-01-21 13:47:24

标签: asp.net exception

我正在使用asp.net memebrlogin_control并获得异常“参数'username'不得包含逗号。参数名称:username”。我在这个

中使用emailID作为用户名

如何删除此错误,我还想知道应该禁止验证电子邮件地址的字符列表是什么。

3 个答案:

答案 0 :(得分:0)

尝试使用正则表达式验证用户名字段,然后再将其传递给您传递的任何方法。这是一个例子:

http://www.codetoad.com/asp_email_reg_exp.asp

答案 1 :(得分:0)

阅读RFC 2822以获取完整的电子邮件地址语法。如果您通过BNF工作,您会发现"@,@"@foo.bar完全没问题,如果不寻常的话。但是,您要求的规则可以在3.2.4节中找到:

atext           =       ALPHA / DIGIT / ; Any character except controls,
                        "!" / "#" /     ;  SP, and specials.
                        "$" / "%" /     ;  Used for atoms
                        "&" / "'" /
                        "*" / "+" /
                        "-" / "/" /
                        "=" / "?" /
                        "^" / "_" /
                        "`" / "{" /
                        "|" / "}" /
                        "~"

atom            =       [CFWS] 1*atext [CFWS]

dot-atom        =       [CFWS] dot-atom-text [CFWS]

dot-atom-text   =       1*atext *("." 1*atext)

和第3.4.1节:

addr-spec       =       local-part "@" domain

local-part      =       dot-atom / quoted-string / obs-local-part

domain          =       dot-atom / domain-literal / obs-domain

如果您忽略了dot-atomlocal-part规则中domain以外的所有内容,则您将匹配常用或花园地址。您的asp.net控件可能不接受所有有效的RFC2822地址,因此您应该检查该文档。

您可能会执行与“%< hexcode>”类似的操作将有效(或不是)电子邮件地址转换为您的控件可以接受的用户名参数的技巧。

来自O'Reilly的

(掌握正则表达式过去曾经有一个庞大的单页正则表达式(大多数是正确的)用于邮件地址,但它已经在第3版中消失了。)

答案 2 :(得分:-1)

在任何情况下,电子邮件地址都不允许使用逗号。如果您输入没有逗号的用户名会怎样?