我想根据MVC C#中的用户角色控制视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想根据MVC C#中的用户角色控制视图相关的知识,希望对你有一定的参考价值。

我想基于用户角色控制我的操作中的视图。角色存储在数据库中,我已根据有权访问视图的人覆盖我的AuthorizeCore以返回true或false。我需要知道控制器中的userRole

如何确定当前用户的角色?

[Authorize]
public ActionResult Index() 

if (userRole = "Admin")  return View("Admin");
else return View("Viewer");

答案

假设您的控制器扩展了System.Web.Mvc.Controller,那么您可以访问基类上的User属性。这将为经过身份验证的用户提供IPrincipal实例,其中包括.IsInRole(string role)

public ActionResult Index() 

    if (User.IsInRole("Admin"))  return View("Admin");
    else return View("Viewer");

注意:如果配置的角色提供程序不自动支持使用.IsInRole,则可以使用User.Identity.Name实现自己的数据库查找

以上是关于我想根据MVC C#中的用户角色控制视图的主要内容,如果未能解决你的问题,请参考以下文章

如何根据用户的角色创建具有不同显示的视图?

如何根据用户在 Laravel 5 中的角色选择用户?

我如何根据 mvc asp.net 中的登录用户切换视图

ios 设计模式简述

对用户的基于角色的访问控制

ASP.NET MVC - 根据用户角色获取数据库数据