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.NETMVC4アプリケーションを作成するときにが有効になっています。ただし、一部のホスティングプロバイダーは、より高いレベルのweb.configでこの設定をオーバーライドすることにより、これを無効にする場合があります。

SimpleMembershipに関する記事からの引用:

プロパティがExtendedMembershipProviderのインスタンスである必要があることを示すエラーが表示された場合は、ASP.NET Webページメンバーシップシステム(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 に答える