7

我正在阅读 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 键?

4

1 回答 1

9

默认情况下,SimpleMembershipProvider当您创建新的 ASP.NET MVC 4 应用程序时启用。但是某些托管服务提供商可能会通过在更高级别的 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>

现在,已经没有混淆的余地了。成员资格和角色提供者都是显式配置的。

于 2013-01-05T10:26:09.320 回答