我正在阅读MVC4中设置简单成员资格我应该执行此步骤:
在AppSettings中包含一行:
<add key="enableSimpleMembership" value="true" />
Run Code Online (Sandbox Code Playgroud)
但是当我查看从模板生成的样本时,他们只有:
<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>
Run Code Online (Sandbox Code Playgroud)
那么为什么我一直在阅读它是否有必要设置enableSimpleMembership键?
默认情况下,SimpleMembershipProvider在创建新的ASP.NET MVC 4应用程序时启用.但是一些托管服务提供商可能会通过在更高级别的web.config中覆盖此设置来禁用它.
引自一篇关于SimpleMembership的文章:
如果您看到一个错误,告知您属性必须是ExtendedMembershipProvider的实例,则该站点可能未配置为使用ASP.NET网页成员资格系统(SimpleMembership).如果托管服务提供商的服务器配置与本地服务器不同,则有时会发生这种情况.要解决此问题,请将以下元素添加到站点的Web.config文件中:
<appSettings>Run Code Online (Sandbox Code Playgroud)<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>
Run Code Online (Sandbox Code Playgroud)
现在,再也没有混淆的余地了.成员资格和角色提供程序都是显式配置的.