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

于 2012-05-12T02:26:21.170 に答える