使用创建用户时asp.net CreateUser中的InvalidUserName。在@字符之前的字符

使用创建用户时asp.net CreateUser中的InvalidUserName。在@字符之前的字符,asp.net,asp.net-membership,Asp.net,Asp.net Membership,我查阅了msdn文档,它说在数据库中找不到用户名时抛出InvalidUserName,这很好,因为我创建的用户不应该存在于数据库中 如果我使用test@example.com,它可以工作,但如果我使用test.@example.com尝试,Membership.CreateUser的状态为InvalidUserName。电子邮件地址以表单形式出现username@domain其中,域是由句点/点分隔的至少两个部分 RFC规范说,一个。在用户名中,地址的部分(@之前的部分)有效,除非。是(用户名)

我查阅了msdn文档,它说在数据库中找不到用户名时抛出InvalidUserName,这很好,因为我创建的用户不应该存在于数据库中


如果我使用test@example.com,它可以工作,但如果我使用test.@example.com尝试,Membership.CreateUser的状态为InvalidUserName。

电子邮件地址以表单形式出现username@domain其中,域是由句点/点分隔的至少两个部分

RFC规范说,一个。在用户名中,地址的部分(@之前的部分)有效,除非。是(用户名)的第一个或最后一个字符,因此您注意到的行为是正确的

大卫·斯特拉顿:从他评论中的维基百科链接中找到了好消息

性格。(点、句号、句号) 前提是它不是第一个或第二个 最后一个字符,并且还提供 它不会出现两次或两次以上 连续地(例如。 厕所。。Doe@example.com)


考试怎么样。somethingelse@example.com? 我认为text.example.com不是一个有效的电子邮件地址。我认为点(.)和at(@)符号在电子邮件地址中都有特殊意义,它们之间需要一些非特殊字符。(我可能错了,但我从未见过这样设置的电子邮件地址。)测试。somethingelse@example.com工作,但如果我有一个。在@之前,它不起作用。所以test。@测试应该有效。这可能是asp.net错误。不,您的电子邮件地址(测试)的用户名部分以点结尾,这是无效的。不,这是无效的。用户名部分是@前面的所有文本。在您的示例中。是用户名部分的最后一部分,这显然使您的示例不是有效的电子邮件地址。这里有一个比提供的更容易阅读的+1.感谢您找到规格。我有一种感觉,这是不正确的,但没有时间寻找规格。谢谢你们两个的帮助。当你说的时候。字符不能在开头或结尾,我以为你指的是整个电子邮件地址的结尾。