asp.net-mvc – 自定义授权MVC 3和Ninject IoC
|
我有一个自定义的授权类,它继承自FilterAttribute并实现了IAuthorizationFilter.我正在使用最新版本的Ninject w / asp.net MVC 3支持. 我的问题是我正在使用构造函数注入来注入一个存储库.但是在OnAuthorization被调用的时候,存储库是空的.这是代码… public class MyAuthorizeAttribute : FilterAttribute,IAuthorizationFilter
{
private readonly IMyRepo _MyRepo;
public MyAuthorizeAttribute() { }
public MyAuthorizeAttribute(IMyRepo myRepo)
{
_MyRepo= myRepo; //this gets initialized
}
public void OnAuthorization(AuthorizationContext filterContext)
{
_MyRepo.DoStuff(); //<< Null,wtf
}
}
过滤器绑定: Bind<IMyRepo>().To<MyRepo>().InRequestScope(); this.BindFilter<MyAuthorizeAttribute >(System.Web.Mvc.FilterScope.Controller,null).WhenControllerHas<MyAuthorizeAttribute >(); 更新: 更新2: 这在下面的工作,但是我需要在控制器的范围,而不是行动. this.BindFilter<MyAuthorizeAttribute >(System.Web.Mvc.FilterScope.Action,null).WhenActionMethodHas<MyAuthorizeAttribute >(); 解决方法属性不支持由.NET Framework创建的构造函数注入,并且不受Ninject的控制.如果您真的想使用FilterAttribute(我不推荐),则必须使用属性注入.而是继续你刚开始的您需要一个实现IAuthorizationFilter的过滤器(不派生自FilterAttribute,只需从上面的代码中删除它),另外还需要一个普通属性来标记控制器/操作. 然后改变绑定: this.BindFilter<MyAuthorizeFilter>(FilterScope.Controller,0).WhenControllerHas<MyAuthorizeAttribute>(); 见:https://github.com/ninject/ninject.web.mvc/wiki/MVC3 当前实现的问题是它被发现一次作为过滤器属性,一旦添加为普通过滤器.一个用于这些实例将使repo注入一个repo为null为另一个. 注意:如果这简化了实现,您可以从现有的FilterAttribute派生.但是在这种情况下不要将其用作属性,而将其用作普通过滤器. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 当通过ASP.NET成员资格检查用户角色时,SemaphoreFullExcept
- ASP.NET会话状态和多个工作进程
- .net – 如何使用SmtpClient.SendAsync发送带有附件的电子邮
- ASP.NET Health Monitoring和ELMAH是否相互替代?
- 如何为枚举执行asp.net mvc 4模型绑定?
- asp.net-mvc – KendoUI网格显示总记录数
- asp.net-mvc-2 – 动态生成的模型中的ASP.NET MVC 2数据注释
- 如何杀死会话或会话ID(ASP.NET/C)
- ASP.NET实现二维码
- asp.net-mvc – 为什么在视图引擎中指定位置时,viewstart文
- asp.net – 如何检测用户操作系统
- asp.net – 是否有可能过滤SignalR中的接收器?
- asp.net-mvc – 在asp .net mvc 5中显示外部网页
- asp.net – Internet Explorer 11在服务器端的检
- ASP.Net Gridview,如何激活基于ID的编辑模式(Dat
- asp.net-mvc – ASP.NET MVC:添加将DisplayName
- asp.net – 插入后在实体框架中获取记录ID
- asp.net-mvc – 如何将数据从AuthorizeAttribute
- asp.net-mvc-4 – 重定向到动作,参数在mvc中始终
- asp.net-mvc – 如何在.net MVC中使用Flux和事件
