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

本文关键字:角色 程序 net 自定义 ASP MVC | 更新日期: 2023-09-27 18:26:03

朋友,

在以下情况下寻求一些帮助:

系统的用户有多个角色——角色A和角色B。

使用角色A——用户可以访问视图——PageA、PageB。

使用角色B——用户可以访问视图——PageP、PageQ。

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

是否可以使用自定义角色提供程序和Asp.NetMVC的windows身份验证来实现这一点?

欢迎提出任何想法。

提前感谢,DC

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

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

您不应该在页面生命周期的中间删除/分配角色给IPrincipal

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

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

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

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