2012-02-15 9 views
2

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の実行中のインスタンスにアタッチした後、私は情報をフォームに入力されていることがわかり妥当性検査を通過するが、許可されたアクセスが制限されているページにはアクセスが許可されない。

また、展開に使用されているデータベースには、開発データベースと同じ値が設定されています。

デバッグ環境で正常に機能していると、デプロイメント後にプロバイダが動作しないのはなぜですか?

+0

デプロイメントサーバーでロールを作成しましたか? –

+0

でした。実装されたデプロイメントテーブルは開発テーブルと一致します。 – XBigTK13X

+0

プロキシは混在していないと私は想定していますか?私たちは、特定のプロキシ設定によって認証クッキーが投げられるのを見ました。 –

答えて

0

この問題は、配備されたサーバーがそのIPによって直接アクセスされた場合にのみ表示されます。ドメインにIPをマッピングし、その後、認証Cookieに同じドメインを設定するホストエントリを追加すると、問題は解決されました。

ドメインがIPアドレスの場合、なぜ私はそのCookieにアクセスできなかったのか分かりませんが、これで問題は解決しました。

0

"フォームに入力された情報が検証を通過するが、アクセスが許可されているアクセスが制限されているページにはアクセスが許可されていないことがわかります。

権限の問題のようです!

関連する問題