ASP.NET访问权限管理

简介:     以前接触到的访问权限,用户登录进来,判断一下用户的身份,根据其身份的权限,进行显示相应的内容。不过那样有个弊端,权限是写死在程序里面的。这一点对于灵活性高的系统来说,肯定是不可取的。
    以前接触到的访问权限,用户登录进来,判断一下用户的身份,根据其身份的权限,进行显示相应的内容。不过那样有个弊端,权限是写死在程序里面的。这一点对于灵活性高的系统来说,肯定是不可取的。所以我们要把权限控制变编译时为运行时。

    废话不多说,直切主题。下面这幅图是实现这个权限管理功能的表结构逻辑。对系统用户进行分组,对功能进行整理,然后让组与功能对应起来,只要该用户属于该组,那他就能访问到与改组对应的界面。所以严格的说,这个权限管理,也就是一个页面访问控制权限管理。
 

 

下面往数据库的表中插入一下测试数据:
根据实际情况,再为这5张表创建3个视图,
v_group_url这个视图可以用来查询某个用户组可以查看的全部网页(即有访问权限的网页)。
v_user_group这个视图可以用来查看该用户属于哪些用户组。
v_user_url这个视图,将2个视图联合起来,可以用来显示,某用户可以访问的页面。
 
这样通过v_user_url这个视图,就可以判断该用户有哪些界面的访问权限了。而我们再做一些针对这些表的控制,这样就把权限管理给做活了。

    其实归根结底,我们只是将用户与功能进行了分离,解耦,通过对用户组和功能建立关联,从而达到控制用户访问该页权限的目的。

 
 
 
目录
相关文章
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
201 7
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
352 2
|
JSON 安全 数据安全/隐私保护
从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用
【9月更文挑战第22天】在.NET 8中,从零开始搭建权限管理系统并使用JWT(JSON Web Tokens)创建Token是关键步骤。JWT是一种开放标准(RFC 7519),用于安全传输信息,由头部、载荷和签名三部分组成。首先需安装`Microsoft.AspNetCore.Authentication.JwtBearer`包,并在`Program.cs`中配置JWT服务。接着,创建一个静态方法`GenerateToken`生成包含用户名和角色的Token。最后,在控制器中使用`[Authorize]`属性验证和解析Token,从而实现身份验证和授权功能。
1249 4
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
783 6
|
消息中间件 开发框架 前端开发
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
254 1
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
153 3
|
算法 Java 测试技术
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
2179 1
|
开发框架 前端开发 JavaScript
基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
|
开发框架 缓存 NoSQL
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
253 0