1

長い間ASP.NETWebフォームを使用しているプロジェクトがありますが、セキュリティスキームでは、ルートweb.config内のすべてのユーザーを拒否し、web.configに基づいてサイトの特定の領域のユーザーを許可していました。そのような特定のフォルダ:

<!-- Root Web.config -->
<authorization>
    <deny users="*" />
</authorization>

<!-- ~/Admin Web.config -->
<authorization>
    <allow roles="AdminRole" />
    <deny users="*"/>
</authorization>

私はこのプロジェクトにMVC4を追加していますが、私の当初の理解では、承認は次のような属性によって制御されていました。

[Authorize(Roles="OtherSectionRole")]
public class OtherSectionController : Controller
{ ... }

を使用しても、これは機能しないようですRoles="*"。ルートweb.configを削除した場合にのみdeny *、コントローラーアクションを実行できます。私は何かが足りないのですか?MVCを機能させるために、ルートレベルでキャッチオール認証を削除したくありません。前もって感謝します!

4

1 に答える 1

0

しばらく前に似たようなことをしなければならなかったのですが、ひっくり返してしまいました。つまり、従来の asp.net サイトを mvc アプリのサブアプリにしたのではなく、その逆にしたということです。MVC アプリでは、ログイン ページ (これらのサイトでメンバーシップを使用していました) の構成をレガシー サイトのページに設定し、レガシー サイトの web.config をそのまま残しました。

于 2012-09-22T23:22:05.837 に答える