如何在MVC 4.0 Razor中进行授权

时间:2014-05-10 14:32:26

标签: asp.net-mvc asp.net-mvc-4 razor

基本上我想在我的项目/网站中添加2个视图。一个用于管理员,另一个用于用户。 我已经在目标控制器中添加了[Authorize]标签并且它可以工作。

使用[Authorize]标签后,当我尝试插入某些东西时,它会重定向到注册页面,任何注册成员都可以输入数据。但是,如何指定可以在表中输入数据的管理员?

我观看了几个教程和视频但是工作方法对我来说并不清楚。在多个站点视频中,他们使用种子数据并在那里编写方法。但我在数据库中输入数据。那么,我该如何使用这个视频教程?因为我没有任何种子数据。

2 个答案:

答案 0 :(得分:6)

您可以通过简单的if语句向他显示html来限制您的用户:

@if (User.IsInRole("Admin"))
{
   //here blocks that you want to show to users with Admin role   
}

您还可以使用[Authorize]属性来装饰某些特定操作:

[Authorize(Roles = "Admin")]
public ActionResult SaveTopSecret()
{

}

User.IsInRole("Admin")也可在控制器中使用,因此您可以决定要向哪个用户显示哪个视图:

public ActionResult Index()
{
    if(User.IsInRole("Admin"))
    {
        return View("Admin");
    }
    return View("User");
}

答案 1 :(得分:2)

@ if (User.IsInRole("Admin"))
{
     return RedirectToAction("Index","Home");
}
else
{
    return RedirectToAction("Index2","Home");
}

希望这适合你:)