2013-10-03 41 views
1

目前我正在使用MVC4應用程序和數據庫。我想使用默認的登錄和註冊過程/方法。SimpleMembership MVC4(現有數據庫)

我使用與像,名字,姓氏,密碼,電子郵件用戶信息表...

我只想用我的數據庫默認註冊/登錄方法。 在互聯網上我讀了幾個主題,但沒有一個給我一個正確的答案。

這是我已經做了:

1使用SimpleMembership

於是我說:

<add key="enableSimpleMembership" value="true"> 

2個加場到RegisterModel

3更改CreateUserAndAccount參數太多:

WebSecurity.CreateUserAndAccount(model.Email, model.Password, new {FirstName = model.UserName, SurName = model.UserName}, false); 

這是解決此問題的最佳方法還是有其他解決方案?

預先感謝您!

+0

您是否定義並應用了'InitializeSimpleMembershipAttribute'?某處需要調用'WebSecurity.InitializeDatabaseConnection(...)'。 protip:另請參閱http:// stackoverflow。COM /問題/ 13030074 /爲什麼-initializesimplemembershipattribute式-MVC-4-應用 –

回答

2

WebSecurity.CreateUserAndAcccount讓你定製你如何填充用戶配置實體的屬性,但你必須更新用戶配置類爲它工作外的開箱。您可以閱讀有關customizing SimpleMembership here的更多信息。 UserProfile是在創建MVC 4項目時使用由Internet模板生成的內容時使用的默認實體/表。要使用另一個表,您需要更改WebSecurity.InitializeDatabaseConnection中的參數以指向您的現有表並定義用戶標識列和用戶名列。用戶ID必須是一個整數,以便它可以與SimpleMembership使用的webpages_Membership表連接,以存儲散列密碼和認證所需的其他信息。

由Internet模板生成的代碼使用初始化數據庫的延遲加載方法,其中您可以在項目的Filters文件夾中找到InitializeSimpleMembershipAttribute。這是調用InitializeDatabaseConnection的地方。如果開發人員不使用表單身份驗證,應用程序仍然可以正常工作,它也可以通過這種方式實現。如果您使用表單身份驗證,我更喜歡straight forward method of database initialization described here

根據您的應用需求,SimpleMembership有很多選項,我會給你幾個。 1)定製用戶配置文件以具有您現有數據庫中的屬性,並且如果您有任何現有數據將其遷移。 2)修改初始化數據庫連接CreateUserAndAccount與您的現有表一起使用。 3)添加一個外鍵到UserProfile這將允許你加入SimpleMembership的用戶到你現有的表。

相關問題