asp.net-mvc-3 – 限制访问ASP.NET MVC 3中的控制器方法
我有一个网站,其中包含一些标签,当选择一个标签时,会使用
AJAX调用从服务器检索其内容.每个选项卡都通过不同的控制器加载.例如,我有一个Customer页面,其中包含Products和Clients选项卡.
该站点具有不同类型的用户,具有不同的权限级别. 我想要做的是保护控制器,并仅在登录用户具有权限时显示选项卡的内容.因此,如果未经许可的用户输入控制器的URL,则应重定向到登录页面.网址是这样的: http://localhost/MyApp/Products/1 其中1是产品的数据库ID. 我可以实现这两个解决方案,但没有一个是最佳的: >使用ChildOnlyAction属性.我会使用此属性标记Product控制器的操作,并使用RenderAction从主视图渲染选项卡.但这意味着必须渲染页面上的所有选项卡,这不是最佳选择,因为我只想在用户单击选项卡时加载数据. 我想知道是否有更好的方法. 解决方法
与罗米亚斯的建议相似.您可以将Authorize元属性与自定义IAuthorizationFilter过滤器结合使用.
实施“授权”元属性时,指定应具有该操作权限的用户或角色列表.这缺乏使用数据库指定用户应该访问哪个ID的能力. 这是ID-to-User映射,IAuthorizationFilter可以在其中发挥作用.在过滤器中,您可以根据数据库检查当前用户. 可以在以下页面找到IAuthorizationFilter示例及其用法: http://geekswithblogs.net/brians/archive/2010/07/08/implementing-a-custom-asp.net-mvc-authorization-filter.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – Asp.net MVC查看测试?
- 给ASP.NET Core Web发布包做减法
- asp.net-mvc – 无法安装Asp.net MVC 3
- asp.net-mvc – Asp.Net MVC中的管理区域
- ‘ASP._Page_sitecore_shell_client_Speak_Layouts_Layouts
- asp.net – 我可以在DefaultModelBinder上禁用DataAnnotati
- ASP.NET Webforms验证框架的建议
- asp.net – 网络负载平衡方案的会话状态
- asp.net – 无法在网站上添加”.访问被拒绝(550)
- asp.net – 在做TDD时如何最好地创建一个测试数据库?