A)爲什麼,使用模板時的CreateUserWizard控制,也包括文本框與ID =電子郵件取決於CreateUserWizard.RequireEmail屬性是否設置爲true,但文本框與ID =問題只有在底層會員供應商需要密碼問題時才需要? 換句話說,爲什麼不能由底層會員提供商決定是否需要文本框(,ID =電子郵件)?
B)。另一方面,爲什麼要由會員提供,以決定是否需要輸入密碼的問題?難道這不應該高達會員級別來決定?最後,成員提供者的工作應該是提供對底層數據存儲的訪問,而不是決定用戶必須提供什麼數據?!
感謝名單
編輯:
A)
它歸結爲會員提供有一個明顯的映射的事實: RequiresQuestionAndAnswer,您可以設置並執行此操作,但不能指定用戶必須提供電子郵件地址。
所以RequiresUniqueEmail實質上告訴用戶不必指定一個電子郵件地址,但如果她這樣做,它必須是唯一的?
B)
如果我理解正確的會員供應商,它們是發送SQL查詢與數據存儲實體?因此,我假設他們對這些數據存儲具有充分的表格和關係等知識。
但是,如果數據存儲沒有用於存儲電子郵件地址的列,但是CreateUser()將電子郵件地址指定爲其參數之一呢?會員提供者如何處理?
我可以問一下:如果Membership.CreateUser()指定已存在的電子郵件,而成員資格提供者需要唯一的電子郵件,則Status參數將通知您這一點,並且Membership.CreateUser()將返回空引用。但是,如果成員資格提供程序的RequiresQuestionAndAnswer設置爲true,但Membership.CreateUser()不提供密碼問題和答案,則會引發異常。 但是,當Membership.CreateUser()未提供唯一電子郵件時,爲什麼也不會引發異常?畢竟,在這兩種情況下用戶都沒有創建?! – SourceC 2009-05-06 19:58:48
順便說一句 - 我假設Membership.CreateUser()調用MembershipProvider.CreateUser()? – SourceC 2009-05-06 19:59:48
是的,Membership.CreateUser()只是傳遞給默認提供者的CreateUser()方法。 – 2009-05-09 11:52:11