2012-08-29 166 views
9

我希望能夠爲應用程序使用相同的數據庫作爲表單身份驗證的asp成員資格詳細信息。我目前正在使用MVC4。當我開始並將system.web.providers添加到我的項目中時,我得到了一個單獨的默認連接。我修改了字符串以指向與我的應用程序(entityframework)中使用的數據庫相同的數據庫。MVC4 ExtendedMembershipProvider和實體框架

應該期待的提供商自動創建該數據庫中的表即

  • webpages_Membership
  • 用戶配置
  • webpages_Roles
  • webpages_OAuthMembership

目前,我正在......

要調用此方法,當我試圖通過註冊默認mvc4應用模板的新用戶「Membership.Provider」屬性必須是「ExtendedMembershipProvider」

的 實例。表格不存在。

問候 添

回答

12

這裏的問題在於默認的mvc4互聯網模板使用simplemembership來管理成員/角色信息。模板中的代碼假設了這一點,只能使用簡單的成員。當您安裝通用提供商時,帳戶控制器代碼因爲無法理解通用提供商而爆發。看看這個帖子,在這種情況下進一步解釋 http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx

+0

歡呼普拉納夫,發現了普遍的提供者問題,並刪除了這一點。我已經解決了這個問題,但現在我只需要解決在我的webconfig中有兩個連接字符串,我有一個用於實體框架連接,另一個是正常(不是EF連接字符串)字符串,但指向相同的數據庫for webpages_tables(simplemembershipprovider tables) – Tim

+0

+1感謝您的鏈接。我一直在試圖理解MVC4會員表有什麼不同以及改變了什麼。 「WSAT構建與ASP.NET成員資格一起使用,並且與簡單成員資格不兼容。」從文章和其他信息幫助明確了這一點。 – Aligned

+1

@Tim,自EF 4.1以來(如果沒有錯誤),您可以使用POCO類和派生的'DbContext'。如果你使用'DbContext(「connStringName」)'構造函數和'WebSecurity.InitializeDatabaseConnection(「connStringName」...) – CallMeLaNN

2

我有同樣的問題,

但是我的不解決,但是很多人都說它添加到你的web.config

<add key="enableSimpleMembership" value="false"/> 
<add key="autoFormsAuthentication" value="false"/> 

,如果這沒有按不要試圖讓頂級的產品成爲現實。