0

MVC 4 アプリを作成しましたが、初めてメンバーシップを使用しようとしています。

メンバーシップ テーブルを作成した SQL データベースがあり、「ASP.NET 構成」を使用してプロバイダーを選択し、ロールとユーザーを追加しました。

ログインページを使用してログインしようとすると、エラーが発生します。

このメソッドを呼び出すには、「Membership.Provider」プロパティが「ExtendedMembershipProvider」のインスタンスである必要があります。

私は紺碧もNuGetも使用していません。

私の設定ファイルは次のようになります。

<membership defaultProvider="SqlMembershipProvider">
  <providers>
    <add connectionStringName="ApplicationServices" name="SqlMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="SqlRoleProvider">
  <providers>
    <add connectionStringName="ApplicationServices" name="SqlRoleProvider"
      type="System.Web.Security.SqlRoleProvider" />
  </providers>
</roleManager>

それが私のために追加されたすべてです。

私のアカウントコントローラーには次の属性がありますが、削除しても違いはありません。

[InitializeSimpleMembership]

この行で失敗します。

if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))

ユーザーがログインできるようにするには、どうすればよいですか?

4

1 に答える 1

0

構成でSqlMembershipProviderを設定しましたが、 SimpleMembershipProviderを使用しようとしてい ます 1 つを選択し、それに応じてアプリを構成します。SimpleMembersip (ほとんどの場合、UserId、Username、およびその他のフィールドを持つ 1 つのテーブル) に対して db を設定する場合は、次のように構成を変更InitializeSimpleMembershipFilterし、テーブルに設定されているように userId、username フィールドを探すようにします。

<membership defaultProvider="SimpleMembershipProvider">
    <providers>
       <clear/>
       <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
    </providers>
</membership>
<roleManager defaultProvider=“SimpleRoleProvider“&gt;
  <providers>
    <add name=“SimpleRoleProvider“ type=“WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData“/>
  </providers>
</roleManager>

それ以外の場合は、SqlMembershipProvider を設定するには、このページの下部を参照してください: http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx

于 2013-06-21T10:18:57.440 に答える