对于这个重载:
如果CreateUser("username@email.com","pwd")
,失败并显示错误消息:提供的电子邮件地址无效。请检查值并重试。
但是CreateUser("username@email.com","pwd","username@email.com")
,成功!
为什么?
对于这个重载:
如果CreateUser("username@email.com","pwd")
,失败并显示错误消息:提供的电子邮件地址无效。请检查值并重试。
但是CreateUser("username@email.com","pwd","username@email.com")
,成功!
为什么?
考虑这样的方法可能会更好:
CreateUser(Username, Password);
CreateUser(Username, Password, Email);
如果不反映代码,我不能肯定地说 100%,但我敢打赌,这些函数只是调用一个内部函数,该函数接受所有可能的参数。
所以你的第一个电话(简化)实际上是:
CreateUser("username@email.com", "pwd", null);
如果您已将您的提供商配置为要求电子邮件地址,那么显然null
是无效的。
从MSDN 文档:
SqlMembershipProvider 提供了一个选项,要求每个用户都有一个唯一的电子邮件地址。如果 RequiresUniqueEmail 属性为 true,您将需要使用 CreateUser 重载之一,该重载允许您为正在创建的用户指定电子邮件地址。 否则,将抛出 MembershipCreateUserException。