我有一个区域,里面有几个控制器,用[Authorize]
属性修饰。我在该地区外还有一些控制器。要默认使用区域内的控制器,我已更新了我的路线,如下所示:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "e_Forms.Controllers" }
).DataTokens.Add("area","RefundRequest");
现在,当我尝试使用http://localhost:58000/
访问时,重定向工作正常。
但是,问题在于,authorize属性不会重定向到登录页面。仅当我尝试使用http://localhost:58000/RefundRequest/Request
进行访问时才会发生重定向。此外,当我尝试使用前者访问时,控制器中的断点不会被击中(但在视图中被击中)。
请建议这里发生了什么,以及解决方法。
编辑1:
当我将路线定义更改为:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { area="RefundRequest", controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "e_Forms.Areas.RefundRequest.Controllers" }
).DataTokens.Add("area","RefundRequest");
authorize属性工作正常。但是它不允许我在没有标有[Authorize]
的区域之外访问Home控制器。