加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用Autofac将属性“绑定”到动作过滤器?

发布时间:2020-12-16 09:36:02 所属栏目:asp.Net 来源:网络整理
导读:我有一个自定义授权过滤器,具有构造函数注入的依赖项. public class CustomAuthorizationFilter : IAuthorizationFilter 一个只保存数据的通用属性. [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class,AllowMultiple = false,Inherited = f
我有一个自定义授权过滤器,具有构造函数注入的依赖项.

public class CustomAuthorizationFilter : IAuthorizationFilter

一个只保存数据的通用属性.

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class,AllowMultiple = false,Inherited = false)]
public class CustomAuthorizeAttribute : FilterAttribute

我从here“借来”的方法,我真的很喜欢分离.我理解过滤器是如何“获取”属性的,但是我错过了接线的东西.

如何将属性“绑定”到过滤器,以便在属性存在时调用过滤器? Ninject似乎有一个syntax for this.但我还没有找到Autofac中的等价物

如果这是我需要在Autofac之外的应用程序中设置的,那也没关系.

谢谢!
玩笑

解决方法

您可以使用相同的类作为过滤器和属性.但您也可以定义另一个属性并检查它是否已定义.

然后你必须注册你的过滤器/属性类:在Global.asax里面,就像filters.Add(new HandleErrorAttribute());.

在filterMethods(在你的情况下,应该是OnAuthorize)中,你可以检查是否有其他属性IsDefined或是否定义了某个属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读