1

自分のデータベーステーブルで使用するためにカスタムメンバーシッププロバイダーを開発しようとしましたが、できませんでした。プロジェクトを実行した後、web.configカスタムメンバーシッププロバイダー行に赤いエラー行が表示されました。:( type="Mvc4ApplicationTest2.Models.CustomMembershipProvider"以下の行をweb.configに追加するように言われた記事を見つけました。

add key="enableSimpleMembership" value="false"
add key="autoFormsAuthentication" value="false" 

これでアプリケーションが実行されます:)しかし、ログインページにアクセスして送信をクリックすると、次のような新しいエラーが発生します。

To call this method, the "Membership.Provider" property must be an instance of "ExtendedMembershipProvider".

もう一度検索したところ、web.configに前の行を追加する必要があると書かれている記事がいくつか見つかりましたが、真の値です!!?add key="enableSimpleMembership" value="true" 混乱しました。?(それで、私は何ができますか?誰もが私を助けてくれますか?そして他の質問、私は私のウェブアプリケーションを保護するために標準的で強力で便利な方法を使いたいです。私がウェブセキュリティクラスまたは他のアプローチを使わなければならないと思いますか?

心からアリ

4

2 に答える 2

3

MVC4プロジェクトのWeb.configファイルにカスタムメンバーシッププロバイダーを登録する方法は次のとおりです。

<membership defaultProvider="MyCustomMembershipProvider">
    <providers>
        <clear />
        <add name="MyCustomMembershipProvider" type="MyProject.MyCustomMembershipProvider, MyProject" connectionStringName="MyConnectionString" />
    </providers>
</membership>

「MyProject.MyCustomMembershipProvider」はメンバーシップクラスへの完全修飾パスである必要があり、「MyProject」はそれに含まれるアセンブリの名前(通常はプロジェクト名)であることに注意してください。

また、次のように、メンバーシッププロバイダークラスがMembershipProviderを拡張していることを確認してください。

public class MyCustomMembershipProvider : MembershipProvider
{
    // Code here
}

Web.configに「enableSimpleMembership」または「autoFormsAuthentication」の行がありません。

うまくいけば、これが役立ちます!

于 2012-11-17T00:51:32.173 に答える
2

たくさん検索してたくさんの記事を読んだ後、ついにそれを見つけました。それは愚かな間違いです。以前はSystem.Web.Security.MembershipProviderから継承していました。そのため、 ExtendedMembershipProviderの実装が必要であることに誤りがありました。だから私はWebMatrix.WebData.ExtendedMembershipProviderでそれを行い、それからすべてがうまくいった。すべてのアドバイスと助けてくれてありがとう。

于 2012-11-23T22:05:28.463 に答える