2012-05-12 29 views
2

この場合overloadMembership.CreateUserが失敗した理由

CreateUser("[email protected]","pwd")の場合、エラーメッセージで失敗しました:指定された電子メールアドレスは無効です。値を確認してもう一度お試しください。

しかし、CreateUser("[email protected]","pwd","[email protected]")、成功!

なぜですか?

+0

あなたのweb.configメンバーシップセクションの設定を更新してください...あなたはそれを変更する必要があります... –

+0

"Remarks"の下に投稿したドキュメントリンク: '... RequiresUniqueEmailプロパティがtrueの場合、作成されるユーザーの電子メールアドレスを指定できるCreateUserオーバーロードのいずれかを使用する必要があります。さもなければ、MembershipCreateUserExceptionがスローされます。 – Equiso

答えて

2

このような方法を考えた方が良いことがあります

CreateUser(Username, Password); 

CreateUser(Username, Password, Email); 

私は確かに100%を言うことができなかったが、私はそれらの機能だけでは内部関数を呼び出す賭けるコードを反映せずに可能なすべてのパラメータを取ります。

だからあなたの最初の呼び出し(簡体字)が実際にある:

CreateUser("[email protected]", "pwd", null); 

あなたは電子メールアドレスを必要とするために、プロバイダを設定した場合は、明確にnullが有効ではありません。 MSDN docsから

SqlMembershipProviderは、各ユーザーに一意の 電子メールアドレスを必要とするオプションを提供します。 RequiresUniqueEmailプロパティが の場合、作成するユーザーの電子メールアドレスを に指定できるCreateUserオーバーロードのいずれかを使用する必要があります。 それ以外の場合は、MembershipCreateUserExceptionがスローされます。

+0

ありがとう、ジョシュ。感謝リフレクター!ハハ – dfang

関連する問題