如何在 mvc 4 中制作自定义验证属性,允许查看仅允许查看页面的人员?
Posted
技术标签:
【中文标题】如何在 mvc 4 中制作自定义验证属性,允许查看仅允许查看页面的人员?【英文标题】:How to make in mvc4 custom validation attribute that alllow to view who is allowed to view page only? 【发布时间】:2013-11-30 12:18:34 【问题描述】:我正在创建 mvc4 应用程序并进行了包含 (manager, Super admin,admin,user) 角色的服装验证 ,我想通过选择或勾选页面上允许查看的人(超级管理员、管理员、用户)来让经理对任何用户授予权限
我的意思是如果允许用户查看页面,则允许查看页面
【问题讨论】:
不提供太多细节,您将不得不创建一个自定义会员提供程序并为您的应用程序实现它 【参考方案1】:您无法验证用户查看某些“视图”而不隐藏某些。它不是那样工作的。如果您了解 MVC 的基本概念,控制器会处理用户信息并将视图返回给用户。因此,如果您想验证视图的用户,则必须验证控制器的用户访问权限。
如果您只希望管理员用户访问“管理员”页面,则通过检查登录用户角色来验证管理员控制器。
[Authorize(Roles = "Admin")]
public ActionResult AdminController()
//Some process
return View(); //This returns admin view if user access this controller.
[Authorize(Users = "someUser")]
public ActionResult AdminProfile()
return View();
更新
如果您想授权一个用户使用角色或只是多个角色,Check this
一个用户可能有多个角色,因此如果您想在操作之间限制“管理员”用户,请让用户同时拥有“管理员”和“技术员”角色,这样他就可以访问管理员控制器的技术部分。上面的链接将解释如何为一个动作授权两个角色。
【讨论】:
但是如果我想做一些类似控制面板的东西,我可以创建 2 个管理员,但第一个允许查看 3 个视图,而另一个允许查看不同的 3 个视图,或者可能更多?跨度>以上是关于如何在 mvc 4 中制作自定义验证属性,允许查看仅允许查看页面的人员?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC:通过 DataAnnotation 进行自定义验证