在MVC4中设置SimpleMembership

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关键字呢?

1个回答

9

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

引用自有关SimpleMembership的文章:

If you see an error that tells you that a property must be an instance of ExtendedMembershipProvider, the site might not be configured to use the ASP.NET Web Pages membership system (SimpleMembership). This can sometimes occur if a hosting provider's server is configured differently than your local server. To fix this, add the following element to the site's Web.config file:

<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>

现在,再也不会有任何混淆的余地了。会员提供程序和角色提供程序都已明确配置。

所以只是为了澄清一下。我正在运行在Windows Azure上。那么您建议不要担心第一个代码块设置,在其中添加一个密钥,而是建议我直接在我的web.config中添加membership和roleManager,就像您在答案的最后一个代码块中所示? - user1943020

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接