首页 新闻 搜索 专区 学院

net core 中过滤器 IAuthorizationFilter 获取 RouteData的问题

0
[已解决问题] 解决于 2018-07-10 17:13

先贴代码

public class SellerAdminAuthorizeAttribute : AuthorizeAttribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationFilterContext context)
    {
        string controllerName = filterContext.RouteData.Values["controller"].ToString().ToLower();
        string actionName = filterContext.RouteData.Values["action"].ToString().ToLower();
        string areaName = filterContext.RouteData.DataTokens["area"].ToString().ToLower();
    }
}

简单描述一下,在站点的所有controller 打了这个特性,其中 需要通过 controller action area 几个参数,去做一些特殊逻辑, 但是代码跑到这里是RouteData 里边获取不到这几个值,count = 0。

对应到以前framework时候,是在继承了controller的基类里边, 通过 重写 OnAuthorization方法实现的, 那么在core 里边, 这个地方要如何获取这几个参数?

死神的背影的主页 死神的背影 | 小虾三级 | 园豆:662
提问于:2018-07-10 17:02
< >
分享
最佳答案
0

找到地方了

string controllerName = filterContext.ActionDescriptor.RouteValues["controller"].ToString().ToLower();
string actionName = filterContext.ActionDescriptor.RouteValues["action"].ToString().ToLower();
string areaName = filterContext.ActionDescriptor.RouteValues["area"].ToString().ToLower();

死神的背影 | 小虾三级 |园豆:662 | 2018-07-10 17:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册