为什么Membership.CreateUser失败?

时间:2012-05-12 01:50:34

标签: asp.net asp.net-membership

对于此overload

if CreateUser("username@email.com","pwd"),失败并显示错误消息:提供的电子邮件地址无效。请检查该值,然后重试。

但是CreateUser("username@email.com","pwd","username@email.com"),成功!

为什么?

1 个答案:

答案 0 :(得分:2)

考虑这样的方法可能会更好:

CreateUser(Username, Password);

CreateUser(Username, Password, Email);

在没有反映代码的情况下,我不能肯定地说100%,但我敢打赌这些函数只是调用一个内部函数来接收每个可能的参数。

所以你的第一个电话(简化)实际上是:

CreateUser("username@email.com", "pwd", null);

如果您已将提供商配置为需要电子邮件地址,则null无效。

来自MSDN docs

  

SqlMembershipProvider提供了一个要求唯一的选项   每个用户的电子邮件地址。 如果是RequiresUniqueEmail属性   是的,您需要使用允许的CreateUser重载之一   您可以为正在创建的用户指定电子邮件地址。   否则,将抛出MembershipCreateUserException。