ASP.Net/MVC - 对于角色,有角色管理 - 功能管理是否有任何并行?

时间:2013-10-16 06:48:12

标签: c# asp.net asp.net-mvc asp.net-membership simplemembership

是否有任何已经构建为库/ nuget包等的东西,可以在任何ASP.Net/MVC应用程序中提供功能管理?我所说的功能类似于模块:数据输入模块,简单报告模块,高级报告模块,预测。 如果用户购买基本许可证,他/她只能访问 - 数据输入模块&简单的报告模块。 如果用户购买专业许可证,他/她可以访问 - 数据输入模块&简单的报告modul&高级报告模块。 如果用户购买企业许可证,他/她可以访问所有 - 数据输入模块,简单报告模块,高级报告模块,预测。

我所指的概念与角色管理概念类似,但不完全相同 - 用户如何访问某个角色,角色可以访问页面/操作方法。

在开发相当多的应用程序时,我遇到了这种情况 - 应该允许用户访问某个部分,不仅因为他们有特定的角色,而且他们还在应用程序中购买了某个功能。注意:这不会简化为用户分配相应的角色,因为很多角色都可以访问应用程序中的特定功能。

此外,我看到一个时间限制的功能 - 具有开始日期和结束日期(结束日期基于用户为功能支付的时间段),这与ASP.Net成员中的角色实现不同提供者或简单成员提供者,其中没有角色的日期概念。


更新:我想说的是“功能”决定了您在应用程序中可以访问的模块数量,“角色”决定了您有权访问模块的数量。

构建自定义解决方案是替代方案还是现有的任何现成产品(免费或付费)?只是不想重新发明轮子!

提前感谢您查看我的问题。


感谢您的回应。

我的想法更多的是在框架中构建一些东西,以便您可以与角色的工作方式一对一地绘制: User.IsInRole(“Admin”)==> Account.HasModule( “银行”) 与在web.config中配置授权信息的方式类似,我应该能够写:

<allow modules="Banking,Finanace"/>

1 个答案:

答案 0 :(得分:0)

我认为任何此类功能都不在asp.net安全/会员资格中,但这很容易开发,您不必购买。因为这更多的是你的功能/模块是独立的(松散耦合)。

我认为这个架构会为您提供基本的解决方案: 创建一个表来存储您已向其授予许可的所有模块列表, 并且在加载每个模块时,只需验证他是否在该表中存储了正确的模块密钥。如果是,那么他被允许使用该模块(然后它将检查角色和会员资格)..

相关问题