この過負荷の場合:
の場合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は、ユーザーごとに一意の電子メールアドレスを要求するオプションを提供します。RequiredUniqueEmailプロパティがtrueの場合、作成されるユーザーの電子メールアドレスを指定できるCreateUserオーバーロードの1つを使用する必要があります。 それ以外の場合は、MembershipCreateUserExceptionがスローされます。