ASP.net MVC的自定义角色提供程序 - 更改角色

时间:2014-10-09 23:25:17

标签: c# asp.net asp.net-mvc roleprovider

在以下情况中寻求帮助:

系统用户有多个角色 - 角色A和角色B.

使用角色A - 用户可以访问视图 - PageA,PageB。

使用角色B - 用户可以访问视图 - PageP,PageQ。

我的用户同时拥有两个角色 - 角色A和角色B,默认角色为角色A. 问题:当用户使用两个角色和默认角色作为角色登录系统时用户应该能够访问视图 - PageA&网页B。我想在布局中有一个下拉列表来显示该用户的角色。当下拉列表中的角色更改为角色B时,用户应该能够访问视图PageP& PageQ,反之亦然。

是否可以使用自定义角色提供程序和使用Asp.Net MVC进行Windows身份验证?

欢迎任何想法。

先谢谢, DC

1 个答案:

答案 0 :(得分:1)

角色提供者的场景背后 - 如果请求新页面,则用户的已分配角色将保存在当前线程的IPrincipal中。它发生在页面生命周期的早期阶段。

您不应在页面生命周期中删除/分配角色到IPrincipal。

  

当下拉列表中的角色更改为角色B时,用户应该是   能够访问PageP& PageQ,反之亦然。

为了实现它,您不希望操纵IPrincipal对象。

相反,请使用简单的逻辑,例如

  1. 将用户的已分配角色填充到DropDownList
  2. 如果选择了角色A,则显示PageA,PageB
  3. 如果选择了角色B,则显示PageP,PageQ