ASP.NET MVC 4に組み込まれている認証と承認を活用するカスタムメンバーシップとロールプロバイダを作成しました。テスト環境に展開するまで、アプリケーションの開発中にすべてがスムーズに進行していました。カスタムメンバーシップとロールプロバイダーはローカルでは機能しますが、展開後は失敗します。
Visual Studioからデバッグモードでアプリケーションを起動すると、正常に動作します。しかし、Visual Studioのワンクリックデプロイメントを使用して、開発マシン上で実行されているIISのインスタンスにアプリケーションをロードします。ブラウザでアプリケーションを読み込むことはできますが、認証は機能しなくなりました。 Fiddlerを使用して、私はクッキーが返送されるのを見るが、私は[Authorize]属性を使って制限されたサイトの部分にアクセスすることができない。
以下は、私のweb.configに関連するスニペットです。次のように
<membership defaultProvider="PonosMembershipProvider">
<providers>
<clear />
<add name="PonosMembershipProvider" type="Ponos.Identity.PonosMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/Ponos" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
<providers>
<clear />
<add name="DefaultRoleProvider" type="Ponos.Identity.PonosRoleProvider" connectionStringName="DefaultConnection" applicationName="/Ponos" />
</providers>
</roleManager>
はまた、私はロジックとの両方のカスタムプロバイダでアプリケーション名を設定します。また
public override string ApplicationName
{
get
{
return "Ponos";
}
set
{
throw new NotImplementedException();
}
}
、IISの実行中のインスタンスにアタッチした後、私は情報をフォームに入力されていることがわかり妥当性検査を通過するが、許可されたアクセスが制限されているページにはアクセスが許可されない。
また、展開に使用されているデータベースには、開発データベースと同じ値が設定されています。
デバッグ環境で正常に機能していると、デプロイメント後にプロバイダが動作しないのはなぜですか?
デプロイメントサーバーでロールを作成しましたか? –
でした。実装されたデプロイメントテーブルは開発テーブルと一致します。 – XBigTK13X
プロキシは混在していないと私は想定していますか?私たちは、特定のプロキシ設定によって認証クッキーが投げられるのを見ました。 –