如何在MVC 4.0 Razor中进行授权

mgs*_*dew 4 asp.net-mvc razor asp.net-mvc-4

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

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

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

Ole*_*Aza 6

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

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

你也可以使用[Authorize]属性来装饰一些特定的动作:

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

}
Run Code Online (Sandbox Code Playgroud)

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

public ActionResult Index()
{
    if(User.IsInRole("Admin"))
    {
        return View("Admin");
    }
    return View("User");
}
Run Code Online (Sandbox Code Playgroud)

  • 在过去的几十年中,Microsoft创建了几个用于角色管理的系统,因此它取决于您使用的是什么.如果您使用的是最后一个系统 - Identity,则有两个类:UserManager和RoleManager,可帮助您添加新角色并将其分配给用户.看看文章:http://typecastexception.com/post/2014/04/20/ASPNET-MVC-and-Identity-20-Understanding-the-Basics.aspx (2认同)