2

我可以想到几种方法来实现这一点(假设网站托管在 Windows 机器上):

A) JavaScript 端:存储经过身份验证的用户的可访问性角色(例如 Admin、Demo-User 等)并基于此角色基本上呈现(或不呈现或禁用)相关的 html 元素/控件。

B) MVC 方面:[A] 中的解释基本上是在 IIS 上完成的,因此通过 .CSHTML 呈现的视图是根据用户的角色进行操作的。

C) [A] 和 [B] 的组合:这是最可能的情况。

拜托,我希望社区就此事提供专业和经验丰富的意见。

4

1 回答 1

1

我只使用方法 A,但是以不同的方式。

当我在我的应用程序中使用默认的简单成员资格时,我只需将一些角色添加到数据库中并将适当的用户添加到这些角色中。

然后,为了过滤内容,我只做两项工作:

1)我通过使用属性过滤控制器请求到适当的角色[Authorize]

[Authorize(Roles = "role1, role2, ...")]

2)我创建了一个局部视图来呈现导航栏/主菜单。在该视图中,我首先检索当前用户的角色:

var roles = Roles.GetRolesForUser(User.Identity.Name);

然后,根据他/她的角色,我呈现菜单项:

bool hasRole1 = roles.Contain("role1") | roles.Contain("admin");
// ...
@if (hasRole1)
{
    <li>...</li>
}
于 2013-08-18T05:55:42.187 回答