この場合overload:Membership.CreateUserが失敗した理由
CreateUser("[email protected]","pwd")
の場合、エラーメッセージで失敗しました:指定された電子メールアドレスは無効です。値を確認してもう一度お試しください。
しかし、CreateUser("[email protected]","pwd","[email protected]")
、成功!
なぜですか?
この場合overload:Membership.CreateUserが失敗した理由
CreateUser("[email protected]","pwd")
の場合、エラーメッセージで失敗しました:指定された電子メールアドレスは無効です。値を確認してもう一度お試しください。
しかし、CreateUser("[email protected]","pwd","[email protected]")
、成功!
なぜですか?
このような方法を考えた方が良いことがあります
CreateUser(Username, Password);
CreateUser(Username, Password, Email);
私は確かに100%を言うことができなかったが、私はそれらの機能だけでは内部関数を呼び出す賭けるコードを反映せずに可能なすべてのパラメータを取ります。
だからあなたの最初の呼び出し(簡体字)が実際にある:
CreateUser("[email protected]", "pwd", null);
あなたは電子メールアドレスを必要とするために、プロバイダを設定した場合は、明確にnull
が有効ではありません。 MSDN docsから
:
SqlMembershipProviderは、各ユーザーに一意の 電子メールアドレスを必要とするオプションを提供します。 RequiresUniqueEmailプロパティが の場合、作成するユーザーの電子メールアドレスを に指定できるCreateUserオーバーロードのいずれかを使用する必要があります。 それ以外の場合は、MembershipCreateUserExceptionがスローされます。
ありがとう、ジョシュ。感謝リフレクター!ハハ – dfang
あなたのweb.configメンバーシップセクションの設定を更新してください...あなたはそれを変更する必要があります... –
"Remarks"の下に投稿したドキュメントリンク: '... RequiresUniqueEmailプロパティがtrueの場合、作成されるユーザーの電子メールアドレスを指定できるCreateUserオーバーロードのいずれかを使用する必要があります。さもなければ、MembershipCreateUserExceptionがスローされます。 – Equiso