无法保护Mvc5中的路由

时间:2018-08-16 07:51:07

标签: c# .net asp.net-mvc-5 routing

我正在尝试根据分配给用户的权限来过滤路由,这是我在BaseController中的覆盖:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        string userId = User.Identity.GetUserId();
        controllerName = filterContext.RequestContext.RouteData.Values["Controller"].ToString().ToLower();
        actionName = filterContext.RequestContext.RouteData.Values["Action"].ToString().ToLower();
        hasParam = filterContext.ActionParameters.Where(d=>d.Value!=null).Count();
        if (!User.IsInRole("Administrator"))
        {

            if (controllerName == "campaign" && actionName == "index" && !IdentityHelper.HasPermission("CanAddCampaignApplication", userId))
            {
                filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { controller = "dashboard", action = "Index" }));
            }

        }

        base.OnActionExecuting(filterContext);
    }

代码在本地计算机上工作正常,但是当我托管站点时的问题是:

当我请求以下网址时,用户成功重定向到仪表板

mysite.com/Campaign

但是当我从Campaign更改为campaign时,如下所示:

mysite.com/campaign

用户可以访问所请求的URL,而不是重定向到仪表板,我进行了很多搜索,但还没有发现问题,请帮助。

预先感谢

0 个答案:

没有答案