根据选择加载不同的角色

时间:2012-11-23 18:20:08

标签: asp.net-membership asp.net-authorization

我正在开发一个ASP.NET MVC 3应用程序,可以为不同的资产类型为用户分配不同的角色。他们能够一次查看属于不同组(资产类型)的资产。

根据正在查看的资产的资产类型,我想更新Principal的角色数组,使其只具有为该资产类型分配用户的角色。

我想我会做一个授权过滤器,负责根据正在查看的资产查找用户已分配到的角色,并将它们加载到roles数组中。这样,roles数组将始终反映它们对正在查看的资产的权限。

然后从视图中,我可以隐藏/显示页面的不同部分,具体取决于它们是否在特定组中(User.isInRole)

根据资产类型,这是否是为用户切换角色的正确方法?

1 个答案:

答案 0 :(得分:0)

如果需要跨请求应用这些角色,并且您可以从标题,查询字符串,cookie或会话中获取项标识符,我建议可能添加一个绑定到AuthorizeRequest事件的httpmodule 。在这一点上,您需要为IPrinciple对象提供其自定义实现

IsInRoles基于您的规则。

这是否有效,我主要只是猜测你的设置和ipad。