0

これは私のメンバーシップ プロバイダーです

<membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <clear/>
        <add name="DefaultMembershipProvider"
             type="System.Web.Security.SqlMembershipProvider"
             connectionStringName="DefaultConnection" 
             enablePasswordRetrieval="false"
             enablePasswordReset="true"
             requiresQuestionAndAnswer="false"
             requiresUniqueEmail="true"
             maxInvalidPasswordAttempts="5"
             minRequiredPasswordLength="6"
             minRequiredNonalphanumericCharacters="1"
             passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>

クイックウォッチを使用してメンバーシップ プロバイダーを展開すると、メンバーシップ プロバイダーは "AspNetSqlMembershipProvider" であり、web.config のどこにも見つからず、変更を加える場所が見つかりません。

アップデート

これは、VS2012 の MVC4 Web アプリ テンプレートです。私はビューを使用していません。WebApi を使用して API を開発しています。

したがって、コントローラーを介してすべてにアクセスしています。コントローラーをテストするために単体テストを実行しています。新しいユーザーを作成しようとすると、メンバーシップが web.config にある構成されていないプロバイダーであることがわかります

エラー更新

結果メッセージ: テスト メソッド *.TestUserControllerPost が例外をスローしました: System.UnauthorizedAccessException: パス 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 11.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\App_Data' へのアクセスが拒否されました。

これは私が得たエラーメッセージであり、メンバーシッププロバイダーと接続文字列を調査することになりました. 次に、構成したデフォルトを使用していることに気付きましたが、DB がローカルであると考える構成です。

単体テストを実行すると、このエラーが発生します。

プロジェクトを通常どおり実行し、コントローラーに対して通常の GET 呼び出しを行うと、正常に動作します

4

1 に答える 1

0

You might need to change the MembershipProvider property of the Login control you are using and set it to the name of this provider: DefaultMembershipProvider.

If that's not what the problem is could you please post some more info about where/what error you are getting?

于 2013-09-04T15:44:02.603 に答える