【问题标题】:MVC4 ExtendedMembershipProvider and entityframeworkMVC4 ExtendedMembershipProvider 和实体框架
【发布时间】:2012-08-29 15:15:01
【问题描述】:

我希望能够为应用程序使用与表单身份验证的 asp 成员详细信息相同的数据库。我目前正在使用 MVC4。当我开始并将 system.web.providers 添加到我的项目中时,我得到了一个单独的默认连接。我已将字符串修改为指向与我的应用程序(实体框架)中使用的数据库相同的数据库。

我是否应该期望提供者在这个数据库中自动创建表,即

  • webpages_Membership
  • 用户资料
  • webpages_Roles
  • webpages_OAuthMembership

目前我正在...

要调用此方法,“Membership.Provider”属性必须是 “ExtendedMembershipProvider”的实例

当我尝试通过默认的 mvc4 应用程序模板注册新用户时。并且没有桌子。

问候 蒂姆

【问题讨论】:

    标签: forms-authentication asp.net-mvc-4


    【解决方案1】:

    这里的问题是默认的 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

    【讨论】:

    • 干杯 pranav,发现了通用提供商问题并删除了它。我已经解决了这个问题,但是现在我只需要解决我的 webconfig 中有两个连接字符串,我有一个用于实体框架连接,另一个是普通(不是 EF 连接字符串)字符串但指向同一个数据库对于 pages_tables(简单会员提供者表)
    • +1 感谢您的链接。我一直试图了解 MVC4 成员资格表有什么不同以及发生了什么变化。 “WSAT 是为与 ASP.NET Membership 一起工作而构建的,与 Simple Membership 不兼容。”这篇文章和其他信息有助于澄清这一点。
    • @Tim,因为 EF 4.1(如果没记错的话)你可以使用 POCO 类和派生的DbContext。如果您使用DbContext("connStringName") 构造函数和WebSecurity.InitializeDatabaseConnection("connStringName"...),您肯定会使用一个连接字符串。
    • 有谁知道如何更改升级旧的 mvc 4 互联网项目以使用 simplemembership?
    【解决方案2】:

    我有同样的问题,

    然而我的没有解决,但是很多人说把这个添加到你的 web.config 中

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

    如果这不起作用,请尝试将顶部设置为 true。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多