0

MVC3 を使用して新しい「ページ」を追加している大規模な ASP.NET アプリケーションがあり、最近では MVC4 を使用しています。Controller Actions の AllowAnonymous 属性を使用して、MVC4 ページを保護したいと考えています。

Web.Config には、次のように承認要素が含まれています。 <authorization> <deny users="?"/> <allow users="*"/> </authorization>

これにより、Asp.Net ページが処理されます。残念ながら、MVC4 アプリの AllowAnonymous 属性も無効にします。認証要素を削除すると、MVC4 認証は (VS2012 MVC4 テンプレート Web サイトと同様に) 機能しますが、それを削除すると、ASP.Net ページは保護されなくなります。

Asp.Net ページと MVC4 の両方で構成されるソリューションで成功した人はいますか?

4

2 に答える 2

0

私はこの問題の解決策を持っていると信じています。もともと、Asp.Net では、ログインせずにアクセスできるいくつかのページをホワイトリストに登録していました。つまり<deny users="?"/>、メインの web.config で設定し、場所要素を使用して、<allow users="*"/>承認を必要としないパスを指定しました。MVC4 認証を使用し、Asp.Net フォーム認証と共存させるには、逆のアプローチをお勧めします。つまり、すべてのユーザーにアクセスを許可し、Asp.Net ページのパス [フォルダー] をブラック リストに登録します。 web.config での承認が必要です。これにより、Asp.Net ページが処理されます。MVC4 コードでは、Controller/Action メソッドで新しい Authorize および AllowAnonymous 属性を使用できるようになりました。これは実際、純粋な MVC4 アプリケーションがとにかく動作する方法とまったく同じです。ないだろう<deny users="?"/>メインの web.config で Authorize 属性を使用してアクションを保護します。そのため、MVC4 で動作するように Asp.Net アプリケーションを変換することを考える代わりに、Asp.Net ページに対応できるように MVC4 アプリケーションを変更する方法を考えました。これを行うための好ましい方法があれば知りたいので、提案があればコメントしてください。

于 2013-05-28T23:42:01.843 に答える
0

ASP.Net ページについての私の理解として、別のフォルダーと web.config ファイルを作成します。MVC ページについても同様で、別のフォルダーと web.config ファイルを作成します。次に、それぞれに必要な認証属性を追加します。そのような

<authorization>
          <deny users="?" />
        </authorization> 
    Or
<authorization>
      <allow users="*" />
    </authorization>
于 2013-05-25T02:37:40.447 に答える