在MVC4中设置SimpleMembership

时间:2013-01-05 10:06:49

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

我正在阅读MVC4中设置简单成员资格我应该执行此步骤:

在AppSettings中包含一行:

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

然而,当我查看从模板生成的样本时,他们只有:

  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

那么为什么我要继续阅读它以设置enableSimpleMembership键呢?

1 个答案:

答案 0 :(得分:9)

默认情况下,在创建新的ASP.NET MVC 4应用程序时启用SimpleMembershipProvider。但是一些托管服务提供商可能会通过在更高级别的web.config中覆盖此设置来禁用它。

引用一篇关于SimpleMembership的文章:

  

如果您看到一个错误,告诉您属性必须是   ExtendedMembershipProvider的实例,该网站可能不是   配置为使用ASP.NET网页成员资格系统   (SimpleMembership)。如果托管服务提供商有时会发生这种情况   服务器配置与本地服务器不同。要解决这个问题,   将以下元素添加到站点的Web.config文件中:

     

<appSettings>

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

</appSettings>

此设置由WebMatrix.WebData.PreApplicationStartCode方法使用,该方法在您的网站运行时自动执行,并将使用此设置的值启用简单成员资格提供程序。

实际上,我建议您明确配置SimpleMembershipProvider

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

现在,再也没有混淆的余地了。会员和角色提供者都是明确配置的。