2012-05-12 383 views
2

爲此overload爲什麼Membership.CreateUser失敗?

如果CreateUser("[email protected]","pwd"),失敗並顯示錯誤消息:提供的電子郵件地址無效。請檢查該值並重試。

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

爲什麼?

+0

更新您的web.config成員資格部分設置...您需要更改... –

+0

在已發佈的文檔鏈接的「備註」下:'...如果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重載之一,它允許您 爲正在創建的用戶指定的E-mail地址。 否則,會引發MembershipCreateUserException。

+0

謝謝,喬希。感謝反射器!哈哈 – dfang