【发布时间】:2014-03-19 09:58:54
【问题描述】:
我是 ASP.NET MVC 的新手,我正在尝试构建一个使用 MVC 5 内置授权方法的网站。
这是我到目前为止所做的:
- 在 AspNetUsers 表中创建了一些用户。
- 在 AspNetRoles 表中创建了多个角色。
- 通过连接 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% 满意。
【问题讨论】:
-
看起来不错。将非常有限,如果您在多个地方执行此操作,则代码维护量会很高。考虑为角色名称创建一个常量集合,以便您至少可以重命名它们或在将来需要时轻松更改它们:)
标签: asp.net asp.net-mvc authorization asp.net-mvc-5 asp.net-roles