ASP.NET MVC 4 + SimpleMembershipProvider

时间:2013-02-15 21:18:12

标签: asp.net-mvc-4 simplemembership

我的MVC应用程序在开发机器中运行良好,但是当我部署到生产服务器时,它总是会提供各种错误消息,例如:

  

您必须调用" WebSecurity.InitializeDatabaseConnection"在调用" WebSecurity"的任何其他方法之前的方法类。此调用应放在站点根目录中的_AppStart.cshtml文件中。

WebMatrix.WebData已将版本更改为2.0并将Copy Local = true设置为,并将这些行复制到web.config中:

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
 <providers>
  <clear/>
  <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider,WebMatrix.WebData"/>
 </providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
 <providers>
 <clear/>
 <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
 </providers>
</membership>

我不知道原因是什么。 我需要帮助。

1 个答案:

答案 0 :(得分:0)

如果你正在使用simpleMembership,我会鼓励你看看这个BlogPost,这对我的情况非常有帮助,因为它可以让你控制所有的会员表并使它们您的实体框架模型的一部分

无论如何,MVC项目的Filters目录中应该有一个InitializeSimpleMembershipAttribute.cs文件。转到该文件并执行此操作:

if (!WebSecurity.Initialized)
            WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);

并将其放入Global.asax.cs文件中。这样它将始终被初始化。此外,在您执行此操作后,无需保留InitializeSimpleMembershipAttribute.cs,我建议您从[InitializeSimpleMembership]

中删除AcccountController