在区域内的控制器上授权属性

时间:2017-12-29 02:29:36

标签: asp.net asp.net-mvc-5

我有一个区域,里面有几个控制器,用[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控制器。

0 个答案:

没有答案