MVC2 からアップグレードされた MVC4 プロジェクトがあります。VS 開発サーバーでデバッグしている間、ユーザー検証は正常に機能します。しかし、ローカル IIS でデバッグしようとすると、パスワードが間違っているためにログインに失敗します。本番システムでは、ユーザー検証も正常に機能します。開発サーバー/運用システムとローカル IIS の唯一の違いは、Web サイトがローカル IIS の仮想ディレクトリで実行されていることです。したがって、URL は開発サーバー/本番環境に次のようなものがあります。
http://localhost:12345/ OR http://the.production.server/
しかし、ローカル IIS では次のようになります。
http://localhost/mymvcproject/
Web サイトをローカル IIS のルート ディレクトリに移動すると、ログインは正常に機能します。
web.config メンバーシップでは、次のように構成されます。
<membership>
<providers>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordReset="true" passwordFormat="Encrypted" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="50" minRequiredPasswordLength="6" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
問題は applicationName パラメータだと思いますが、変更していません。私がチェックしたこと:
- データベースのデータは常に同じでした
- 新しいユーザーを作成して検証するには、仮想ディレクトリにいるときにローカル IIS で作業します
- 元のMVC2プロジェクトでもテストしましたが、同じ問題です
私は正しい道を進んでいますか?検証/パスワードの暗号化/復号化を URL/アプリケーション名から独立させる方法はありますか?