SQL Server Express 11.0.21xx としてデータ ストアを持つ SqlMembershipProvider を使用するように MVC 4 Web サイトをセットアップしています。
NuGet 経由でユニバーサル プロバイダーをインストールしました
PM > Install-Package Microsoft.AspNet.Providers
アプリを実行して localhost/Accounts/Register に移動し、フォームを送信すると、このエラーが発生します
To call this method, the "Membership.Provider" property must be an instance of "ExtendedMembershipProvider".
この行で
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
アカウント コントローラーには属性[InitializeSimpleMembership]
セットがあります。ただし、前述のエラーのため、テーブルは作成されません。
NuGet によって更新された web.config セクション
<profile defaultProvider="DefaultProfileProvider">
<providers>
<add name="DefaultProfileProvider"
type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection"
applicationName="/" />
</providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider"
type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
<providers>
<add name="DefaultRoleProvider"
type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection"
applicationName="/" />
</providers>
</roleManager>
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider"
type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection" />
</providers>
</sessionState>
接続文字列
<add name="DefaultConnection" connectionString="server=servername\instance;Database=imdb;User Id=sa; Password=passbird;" providerName="System.Data.SqlClient" />
問題はどこですか?ユニバーサル プロバイダーを使用する必要がありますか? 新しいアカウント コントローラーの aspnet_regsql cos を実行する必要があるとは思いません。