【发布时间】:2012-08-06 14:08:22
【问题描述】:
我正在开发 ASP.NET MVC 4 应用程序。我有一个仪表板,我的用户组将基于 Windows 域 所以我使用 WIndows Authentication 对用户进行身份验证。 我创建了通过覆盖函数 AuthorizeAttribute, ActionFilterAttribute 使用自定义身份验证的示例应用程序。这是一个好方法吗?
- 哪个属性最适合用于身份验证?
我有一个仪表板。所以我需要根据角色显示或隐藏控件。 假设如果有 3 个网格(表),如果管理员登录,他可以看到 3 个网格(表)。 但如果支持用户登录,他只能看到 2 个网格(表格)。
我的计划是为每个网格创建局部视图,因此每个局部视图都会有一个动作和控制器。 将有一个数据库,其中我将指定每个组可以执行的操作。这样我就可以过滤请求。
2 如何根据角色隐藏或显示部分视图?。
我尝试了一些 SO 链接,但他们都在谈论 2,3 角色并且它是硬编码的。 在我的情况下,角色可能会有所不同,我们使用 db 来设置角色的访问权限。
提前致谢。
【问题讨论】:
-
控制器/动作注释在这里听起来不太合适,您需要在创建视图模型的服务/层中执行此逻辑检查。
-
那么怎么做呢?你能提供更多细节吗?我是 MVC 新手。
-
您要问的内容非常广泛,但您很可能需要执行类似 if(user.role == "admin){//populate all model grids},if(user.role == "guest"){//只填充他们可以看到的网格,让其他的为null}。然后在你的视图中,if(@model.grid != null){output data}
-
但是我怎样才能为每个角色设置 If 条件。假设我有 20 个角色,我需要检查这是否是角色 1 或者角色 2 等?有没有其他解决办法
-
再次 - 你问了一些非常广泛的问题,你得到的任何答案都将非常笼统。你可以把它分成多个函数/视图/等,你可以做一个 if/then/else,有很多方法可以走。很抱歉不能提供更多帮助
标签: asp.net .net asp.net-mvc authorization windows-authentication