2

我对 ASP.NET MVC 很陌生,我正在尝试构建一个使用 MVC 5 内置授权方法的网站。

这是我到目前为止所做的:

  1. 在 AspNetUsers 表中创建了许多用户。
  2. 在 AspNetRoles 表中创建了许多角色。
  3. 通过连接 RoleID 和 UserID,通过 AspNetUserRoles 表为用户分配角色。

现在,要设置一个页面以仅向具有管理员角色的用户显示某些内容,否则将其隐藏,我已经这样做了:

@if(User.IsInRole("Admin")) 
{
    <p>You are logged in as an admin.</p>   
} else
{
    <p>You are not logged in as an admin.</p>
};

这样做可以吗,还是很糟糕?我已经玩了很长时间了,它按预期工作(据我所知)。

我知道我可以创建 CustomAuthorizationAttributes 并将它们分配给 Controller 中的 ActionMethods,但我对此语法并不是 100% 满意。

4

1 回答 1

2

如果您对语法感到满意,那很好。

但是你不能忘记使用 Authorize 属性来保护视图本身。您可以使用默认值,如下所示

[Authorize(Roles = "Admin")]
public ActionResult Register()
{
...
return View();
}
于 2014-02-19T08:22:34.200 回答