我是ASP.NET MVC的新手,我正在尝试构建一个使用MVC 5的内置授权方法的网站。
这是我到目前为止所做的:
现在,要将单个页面设置为仅向具有admin-role的用户显示某些内容,否则将其隐藏,我已完成此操作:
@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,但我对此语法并不十分熟悉。
答案 0 :(得分:2)
如果您对语法感到满意,这很好。
但您不能忘记使用Authorize属性保护视图本身。您可以使用以下默认值
[Authorize(Roles = "Admin")]
public ActionResult Register()
{
...
return View();
}