問題を説明するためにどのタイトルを使用すればよいかわかりません。私の問題を単純化する。ここに私のテストがあります。私は最初からmvc3サイトを作成します。次に、「admin」という領域を追加します。 adminの中には、 "Search"という名前のコントローラがあり、 "Authorize"属性が装飾されています。次に、Global.ascx.csのルート設定を変更して、コントローラの名前空間を追加しました。今私はテストを始める。MVC3 Area + Authorize属性+ロールの奇妙な問題
私はhttp://localhost:xxx/Searchページにアクセスしていますが、それはバック/アカウント/ログオンページに私をリダイレクト質問は、それがページをログオンするために私をリダイレクトし、なぜ私は、最初の混乱のですか?私が理解しているように、管理者の検索コントローラには全くアクセスしてはいけません。 Authorize属性を削除した場合、期待どおりのビューが見つからないという黄色い画面が表示されます。
質問2
Iは、例えば、役割と属性を承認する追加した場合(Roles = "Admin")、検索ページへのアクセスを再試行します。ログインに成功したかどうかにかかわらず、常にログオンページにリダイレクトされます。なぜ私に黄色の画面が表示されないのですか。私は管理サイトのものではなくメインのサイトで検索コントローラのインデックスビューを要求しようとしています。かなり混乱します。
私はMVC開発の初心者です、誰かが私の問題に関して私に解決策を教えてくれますか?
おかげ
Global.ascx.cs
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[]{"TestAreaRouting.Controllers"}
);
}
あなたの説明に感謝します。しかし、私はまだそれを混同します。まず、authorize属性を削除すると、管理領域内の検索コントローラをスキャンしない理由を説明できますか? – Vincent
@Vincent、あなたのために推奨されるコードはありませんか?特に混乱しているのは何ですか? –
ところでダリン、チャンスがあれば私の別の質問を説明することもできますhttp://stackoverflow.com/questions/8219347/asp-net-mvc-allowhtml-bug-or-something-i-didnt-use-正しく – Vincent