Asp.net mvc 如何实现动态角色ASP.NETMVC的用户管理

Asp.net mvc 如何实现动态角色ASP.NETMVC的用户管理,asp.net-mvc,Asp.net Mvc,对于即将到来的项目,我需要一个更复杂的用户管理系统 我的网站应该与消费者和提供者合作 每个消费者都可以扮演不同的角色,这取决于与他合作的提供商 到目前为止,我的操作是“受保护的”,使用实现的用户管理,如 [Authorize(Roles = "Admin")] 现在,我将有不同的组合,如角色ConsumerOnProviderA或AdministratorOnProviderB 因此,用户工作流将如下所示: 登录 选择要使用的提供程序 根据选定的提供商和定义的角色,与站点进行交互 因此,在

对于即将到来的项目,我需要一个更复杂的用户管理系统

我的网站应该与消费者和提供者合作

每个消费者都可以扮演不同的角色,这取决于与他合作的提供商

到目前为止,我的操作是“受保护的”,使用实现的用户管理,如

[Authorize(Roles = "Admin")]
现在,我将有不同的组合,如角色
ConsumerOnProviderA
AdministratorOnProviderB

因此,用户工作流将如下所示:

  • 登录
  • 选择要使用的提供程序

  • 根据选定的提供商和定义的角色,与站点进行交互
因此,在选择提供者之前,用户的角色已设置

对于这样的场景,是否有现有的(安全的)实现或解决方法

我希望我能清楚地解释我的目标


感谢Carsten

“根据选定的提供商和定义的角色,与网站进行互动。”您指的是什么样的互动;根据所选提供商的不同内容或页面?交互在同一站点上,但数据不同。假设你是移动电话公司A的首席执行官,并且与公司B签订了客户合同。作为首席执行官,你会看到自己公司的数据,而作为客户,你只会看到自己的个人信息。所以我需要检查,允许您访问哪种数据类型。此外,读写权限也可以由该权限或某些详细站点的可见性来控制。好的,因为我的问题似乎不是那么简单,我将尝试以其他方式提问。我可以根据所选的值建议用户角色吗?例如,用户选择公司A,他将成为超级用户。选择公司B后,他将成为用户。asp.net中的身份角色允许一个用户成为多个角色的成员。因此,一个人可以成为AdminClientA和CustomerClient的成员。但是,只要有一个新客户机,比如ClientC,就必须更改代码。这可能会有所帮助;授权的自定义属性在razor(html)和控制器内部都有
if(User.IsInRole(“AdminClientA”){//do something}
。因此,您可以自定义要向用户显示的内容。