在 ASP.net 中,基于角色访问页面/功能/菜单的最具可扩展性的方式是啥?

Posted

技术标签:

【中文标题】在 ASP.net 中,基于角色访问页面/功能/菜单的最具可扩展性的方式是啥?【英文标题】:In ASP.net what is the most scalable way to have role based access to pages/features/menus?在 ASP.net 中,基于角色访问页面/功能/菜单的最具可扩展性的方式是什么? 【发布时间】:2010-08-31 21:24:39 【问题描述】:

我知道诸如基于角色的动态菜单创建或从不同基本页面继承的页面之类的实现。不同站点部分的 Web.config。

我不想在数据库中使用默认的 asp.net 成员表结构。我想使用一些不太复杂的东西。

我正在研究一种可能性,即角色可以随时来去而不会对页面造成太大影响。我也在寻找性能。

【问题讨论】:

【参考方案1】:

您可以创建一个自定义 RoleProvider,这是一篇关于它的文章: http://davidhayden.com/blog/dave/archive/2007/10/17/CreateCustomRoleProviderASPNETRolePermissionsSecurity.aspx

让它引用一个存储角色和用户 ID 关系的多对多表。

【讨论】:

【参考方案2】:

看起来使用像http://www.mojoportal.com/home.aspx或http://www.dotnetnuke.com/这样成熟的开源CMS框架更合适。它们已经为您提供了所有用户和角色管理的 UI。

否则你需要实现你自己的membershipprovider、roleprovider和大量的UI来处理你的需要。

【讨论】:

以上是关于在 ASP.net 中,基于角色访问页面/功能/菜单的最具可扩展性的方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 17. 基于Claim和Policy的授权 上

SQL 数据库驱动的 C# 和 ASP.Net 基于角色的身份验证控制

asp.net web.config中基于多个角色的文件夹授权

Asp .net core - 通过角色授权访问文件夹中的所有文件

在 ASP.Net 中动态构建菜单

使用 Azure AD 的 Asp.net core mvc 基于角色的授权