asp.net-mvc – 如何将存储库传递给ASP.NET MVC中的authorize属
发布时间:2020-12-16 07:42:57 所属栏目:asp.Net 来源:网络整理
导读:我是Castle Windsor,它适用于控制器构造函数传递正在使用的存储库. private IStoryRepository Repository;public StoryController(IStoryRepository Repository){ this.Repository = Repository; } 现在我在管理区域中有一个Action来显示主管理菜单.我使用了
我是Castle Windsor,它适用于控制器构造函数传递正在使用的存储库.
private IStoryRepository Repository; public StoryController(IStoryRepository Repository) { this.Repository = Repository; } 现在我在管理区域中有一个Action来显示主管理菜单.我使用了自定义授权属性,只检查登录用户是否为admin(只是users表中的isAdmin标志) [AdminAuthorize] public ActionResult Menu() private IStoryRepository Repository; /// <summary> /// Initializes a new instance of the <see cref="AdminAuthorizeAttribute"/> class. /// </summary> public AdminAuthorizeAttribute(IStoryRepository Repository) { this.Repository = Repository; } /// <summary> /// Checks if the user is authorised /// </summary> /// <param name="httpContext">The HTTP context.</param> /// <returns> /// <c>true</c> if authorized; otherwise,<c>false</c>. /// </returns> protected override bool AuthorizeCore(HttpContextBase httpContext) { return this.Repository.UserIsAdmin(httpContext.User.Identity.Name); } 如何让Castle将存储库传递给属性构造函数,就像它对控制器构造函数一样? 解决方法
你基本上有两个选择.将过滤器包装在代理中,可以找到一个很好的例子
here.
或者,在自定义过滤器中,您可以执行显式容器调用.例如使用StructureMap(我没有广泛使用过的城堡) ObjectFactory.GetInstance(IStoryRepository) 可能有第三种方法是扩展ActionInvoker以进行注射,但我不确定如何做到这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 当路由有多个值时如何构建RouteValueDictio
- 如何在ASP.NET中最好地填充HTML表?
- 突出显示ASP.Net菜单中的选定选项卡
- asp.net-mvc – ASP.net MVC RTM测试命名约定
- 自动将ASP.NET FormView绑定到新插入的记录
- ASP.NET中内联标记的全球化差异
- asp.net – 直接将.aspx转换为.pdf [已关闭]
- asp.net-mvc – 如何在Controller外访问RequestContext?
- asp.net-mvc-3 – 您可以编辑CSHTML而无需再次构建
- asp.net-mvc – ASP.NET MVC以编程方式获取控制器列表
推荐文章
站长推荐
- ASP.NET MVC&C#:HttpStatusCodeResult()vs
- asp.net-mvc-3 – mvc3 https&http
- asp.net-mvc – 我应该在数据库中的URL中存储空格
- asp.net – Linux或OS X中的Web API 2.1
- asp.net – 如何在站点地图的单独窗口中打开文档
- 是否可以使Page.IsPostBack独立于ASP.net而变为真
- asp.net-mvc – ASP.NET MVC自定义成员资格提供程
- asp.net – 如何在iFrame上显示Div或Panel
- regex – RegularExpressionAttribute – 如何使
- asp.net-mvc – 在MVC 3项目中使用T4MVC生成的代
热点阅读