繼承自MembershipUser類我在我的項目中使用內置的.net身份驗證,並在實體框架4.0中創建類實體。從EF
我的班級是學生,大學和公司班級。我的問題是我可以繼承這些類的System.Web.Security.MembershipUser類嗎? ef類已經繼承了EntityObject類,所以我不知道該怎麼做?
感謝
繼承自MembershipUser類我在我的項目中使用內置的.net身份驗證,並在實體框架4.0中創建類實體。從EF
我的班級是學生,大學和公司班級。我的問題是我可以繼承這些類的System.Web.Security.MembershipUser類嗎? ef類已經繼承了EntityObject類,所以我不知道該怎麼做?
感謝
你的問題有點缺乏細節,但我在回答一展身手。
要開始你不想從MembershipUser類繼承。你可以(因爲它的抽象),但如果你打算使用自己的邏輯和數據庫表來存儲驗證字段,你只能從它繼承。
您不會將會員資格放入大學或公司班級,而是放在這些實體的成員身上,例如學生是大學的成員,因爲公司有員工。
無論是學生或員工都會對他們的成員信息(他們的數據庫表內),但更可能有直接關係到他們的信息(例如一個員工都有一個工資號)
學生和員工都(例如他們都有姓名,地址等)
學生或員工可能是您的應用程序(網站,桌面等)的用戶,但他們也許不是,或者他們可能是作爲用戶停用,但您希望保留他們的人員和學生/員工信息作爲記錄。
用戶將擁有像...... UserId,用戶名和密碼等常用信息,但如果您要在應用上放置DisplayName,則不想使用此實體。出於安全原因,我也不會將會話信息放到用戶上,而是使用UserId(加密的MD5單向加密)和SessionId來驗證我的用戶會話,這意味着如果我確實有一些違反安全性(SQL注入)黑客將無法訪問用戶名和密碼的詳細信息。無論如何,我離題了。
那麼,什麼是MembershipUser類?它主要用於你的Authentication對象,這個對象具有類似... Login,ChangePassword,Logout等方法。這些方法會調用
if(!Membership.ValidateUser('username','password'))return false ;等
如果你想使用自己的db表和entityframework調用的成員資格,那麼你會看到實現一個自定義成員資格提供程序,覆蓋所有的標準方法,並把你的實體DAO請求(希望使用設計模式,例如存儲庫等等。)。這可能是有風險和困難的,但是經驗並不太大。
否則,只用標準的會員(用戶)提供者,堅持它在web.config文件需要並將它處理的安全性,你可以得到與你開發的應用...
一本好書是Pro Asp.Net MVC框架......它經歷了一切,包括單元測試,設計模式等等。花費一些錢的一個好方法是在GOF(Gang of Four)設計模式源代碼中。 。獲得全部作品,最高花費60英鎊。
我希望這有助於。
Hugh
沒有EF提供者,但您可以編寫自己的提供者。 爲您的MembershipUser派生類編寫一個映射器類。 我在這裏找到一個很好的例子: efmembership.codeplex.com
爲什麼你想這樣做?你想讓課堂「認證」? – 2011-01-25 11:56:23