2

对于这个重载

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

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

为什么?

4

1 回答 1

2

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

CreateUser(Username, Password);

CreateUser(Username, Password, Email);

如果不反映代码,我不能肯定地说 100%,但我敢打赌,这些函数只是调用一个内部函数,该函数接受所有可能的参数。

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

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

如果您已将您的提供商配置为要求电子邮件地址,那么显然null是无效的。

MSDN 文档

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

于 2012-05-12T02:26:21.170 回答