如何在 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 进行自定义验证

自定义属性的 ASP.NET MVC 客户端验证

ASP.Net Core MVC - 自定义属性的客户端验证

MVC 自定义属性验证登录

未呈现 MVC 4 中的自定义包

在 Asp.net Core MVC 中定义自定义客户端验证规则