【问题标题】:The parameter 'username' must not contain commas. Parameter name: username参数“用户名”不得包含逗号。参数名称:用户名
【发布时间】:2010-01-21 13:47:24
【问题描述】:

我正在使用 asp.net memebrlogin_control 并收到异常“参数'用户名'不能包含逗号。参数名称:用户名”。我在此使用 emailID 作为用户名

我怎样才能消除这个错误,我也想知道应该禁止验证电子邮件地址的字符列表是什么。

【问题讨论】:

    标签: asp.net exception


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      阅读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
      

      如果您在 local-partdomain 规则中忽略除 dot-atom 之外的所有内容,您将匹配公共或花园地址。您的 asp.net 控件可能不接受所有有效的 RFC2822 地址,因此您应该检查该文档。

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

      (来自 O'Reilly 的掌握正则表达式曾经有一个用于邮件地址的巨大的单页正则表达式(大部分是正确的),但它在第三版中消失了。)

      【讨论】:

        猜你喜欢
        • 2019-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-20
        • 2016-09-29
        • 2015-03-27
        • 1970-01-01
        相关资源
        最近更新 更多