Asp.net mvc 如何获得已应用于特定控制器操作的授权筛选器列表?
在asp.net MVC应用程序中,一位同事试图在网站的布局控件中构建一组依赖于角色的UI元素,而我的同事希望根据用户的角色关系生成一个显示或不显示的html扩展 同事希望能够测试特定链接链接到的操作,并检查用户是否有权访问该链接。为了做到这一点,最好针对控制器操作运行所有授权过滤器 为此,必须检索为特定操作注册的所有授权筛选器 有人知道如何仅获取与特定控制器操作相关联的授权过滤器属性吗?类似的内容Asp.net mvc 如何获得已应用于特定控制器操作的授权筛选器列表?,asp.net-mvc,reflection,asp.net-mvc-4,asp.net-mvc-filters,Asp.net Mvc,Reflection,Asp.net Mvc 4,Asp.net Mvc Filters,在asp.net MVC应用程序中,一位同事试图在网站的布局控件中构建一组依赖于角色的UI元素,而我的同事希望根据用户的角色关系生成一个显示或不显示的html扩展 同事希望能够测试特定链接链接到的操作,并检查用户是否有权访问该链接。为了做到这一点,最好针对控制器操作运行所有授权过滤器 为此,必须检索为特定操作注册的所有授权筛选器 有人知道如何仅获取与特定控制器操作相关联的授权过滤器属性吗?类似的内容 typeof(MyController).GetType() .GetMethod("actio
typeof(MyController).GetType()
.GetMethod("action")
.GetCustomAttributes(true)
.Where(attr=>attr is IAuthorizationFilter).Cast<IAuthorizationFilter>()
typeof(MyController).GetType()
.GetMethod(“操作”)
.GetCustomAttributes(true)
.Where(attr=>attr是IAuthorizationFilter).Cast()
但你必须伪造过滤上下文。就我个人而言,为了测试的目的,我会将过滤器功能从过滤器本身中分离出来。因此,您将拥有过滤器将调用的实际“authorizator”对象