2011-11-30 36 views
0

我一直在做關於如何進行自定義profileprovider在.NET MVC一些研究。 看起來很複雜。還有其他的選擇嗎? 這是我主要關心的問題,爲什麼人們會使用客戶資料提供程序打擾他人?如果他們需要關於用戶的額外信息,爲什麼他們不只是用userId或userName作爲外鍵來製作另一個帶有與aspnet_Users的OneToOne關係的表?帳戶資料MVC .NET

請說明。我試圖實現用戶配置文件功能,但我不想走錯路。

感謝 DG

+0

你不需要一個「自定義」配置文件提供者,除非你正在做一些複雜的業務邏輯或從不同的數據結構提取數據。如果你使用'aspnet_regsql.exe'工具,應該爲你提供表格。然後,只需使用框架附帶的[SqlProfileProvider](http://msdn.microsoft.com/en-us/library/system.web.profile.sqlprofileprovider.aspx)類。 –

+0

不,我不想做SqlProfileProvider。我會查詢大量的數據 – Dhana

回答

1

(不知道這是否有助於談自定義配置文件提供者。除非我誤會了...)


IMO,什麼都你這樣做。 。避免(烤的)ASP.NET Membership不惜任何代價!它SOOOOO高於工程,你要捅你自己的眼睛用鈍的勺:(

相信我避免

爲什麼:。Should I use the built-in membership provider for an ASP .NET MVC application?

所以..什麼我們可以辦呢?

這只是這麼簡單,滾你自己用戶名/密碼,並利用內置的Forms Authentication。至於我自己,我不是在自己的數據庫中存儲-any-密碼的粉絲..所以我更喜歡使用Facebook,推特或OAuth作爲my mechanism for authentication ..這意味着我完成了一個簡單的,基本的,自定義的用戶類。

我也create my own custom IPrincipal and IIdentity,因爲我想存儲在cookie中,形成當一個人已經被驗證驗證創建更多的信息。這樣可以讓我的代碼更加清潔簡單。

例如,我的認證的人的用戶ID存儲在一個加密的cookie。 (默認選項是隻存儲一個Name)。我還儲存了一兩件東西..但你明白了。這樣,我並不總是有數據庫來檢索任何用戶數據或存儲在會話中的這個廢話。

隨着你自己的卷,你可以創建額外的元數據(生日?媽媽的孃家姓?社會安全號碼(笑話))..並有額外配置文件數據。同一張桌子?額外的桌子?誰在乎......這是一個稍後決定(並且易於解決)的決定。讓你的模型正確,海事組織:)然後,一旦你鎖定了你的模型,你現在知道什麼是必需的,什麼是可選的。然後你可以做出一些數據庫決策。

TLDR?

  1. 避免建在ASP.NET成員廢話
  2. 推出自己的..並保持它的簡單。
  3. 如果你感到先進,也推出自己IPrincipalIIdentidy真正搖滾你的世界。

GL HF並且不要用鈍勺在自己的眼睛裏刺自己!

enter image description here