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



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

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

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

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


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

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

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


感谢您的回复。

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

<allow modules="Banking,Finanace"/>

我不认为任何此类功能内置于 asp.net 安全性/成员资格中,但这非常容易开发,您无需购买。 因为这更多的是关于您的功能/模块在多大程度上是独立的(松散耦合)。

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

最新更新