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

C# 使用ASP.net MVC的自定义角色提供程序--更改角色,c#,asp.net,asp.net-mvc,roleprovider,C#,Asp.net,Asp.net Mvc,Roleprovider,朋友们 在以下情况下寻求帮助: 系统的用户有多个角色——角色A和角色B 使用角色A——用户可以访问视图——PageA,PageB 使用角色B——用户可以访问视图——PageP,PageQ 我有一个用户同时拥有两个角色——角色a和角色B,默认角色为角色a。 问题:当用户以角色和默认角色作为角色登录到系统时,用户应该能够访问视图——PageA和PageB。我想在布局中有一个下拉列表来显示该用户的角色。当下拉列表中的角色更改为角色B时,用户应该能够访问视图PageP和PageQ,反之亦然 是否可以通过

朋友们

在以下情况下寻求帮助:

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

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

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

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

是否可以通过Asp.NETMVC使用自定义角色提供程序和windows身份验证来执行此操作

欢迎提出任何意见

提前感谢,,
DC

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

<强>您不应该在页面生命周期的中间删除/分配角色。< /强>

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

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

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

  • 将用户分配的角色填充到DropDownList
  • 如果选择了角色A,则显示第A页、第B页
  • 如果选择了角色B,则显示PageP,PageQ