Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想在MVC中控制基于用户角色的视图#_C#_.net - Fatal编程技术网

C# 我想在MVC中控制基于用户角色的视图#

C# 我想在MVC中控制基于用户角色的视图#,c#,.net,C#,.net,我希望根据用户角色控制操作中的视图。角色存储在数据库中,我已经覆盖了我的AuthorizeCore,根据谁有权访问视图返回true或false。我需要知道控制器中的userRole 如何确定当前用户的角色 [Authorize] public ActionResult Index() { if (userRole = "Admin") { return View("Admin");} else {return View("Viewer"); } 假设您的控制器扩展了System.Web.Mv

我希望根据用户角色控制操作中的视图。角色存储在数据库中,我已经覆盖了我的
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(字符串角色)


注意:如果您配置的角色提供程序不自动支持使用
.IsInRole
,您可以使用
User.Identity.Name

实现自己的数据库查找,谢谢John!由于角色在数据库中,我需要在通过User.IsInRole访问角色之前分配(设置)角色。我想知道如何/在哪里分配角色。@a以及您使用的角色提供程序是什么?我不知道;我不认为我在使用任何角色提供者:(当你说“角色存储在数据库中”时,你是什么意思?所有的用户和角色都在数据库中定义。
public ActionResult Index() {

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