浅谈在ASP.NET的权限控制机制

在写ASP.NET项目时经常会碰到权限管理的问题,一般情况下是在每个页面都加入权限控制的代码,其实通过写一个页面基类(PageBase),然后所有需要进行权限判断的页面继承此类,在PageBase的ProcessRequest中加入权限控制代码,那么其他继承此类的子页面就不用写了。

由于在ProcessRequest方法中我们只可以得到HttpContext信息,那么怎么跟权限挂钩呢?每个页面都是一个类,并且我们可以知道当前登陆者的id(假如用户登陆成功,由User.Identity.Name可获取),那么将用户的id和每个需要权限控制的页面类之间的关系登记到数据库中,在验证的时候从数据库里查找是否有权限,不就一劳永逸了!

当然你还可以把角色和模块功能对应,通过用户id所属的角色来判定当前用户是否具有此模块功能的操作权限。(设计问题不在此多说,现在只说原理)

获取每个子页面的类名非常简单,this.GetType().BaseType.FullName就搞定了。为了避免类名重复的情况,还是建议类名用全称,即带上命名空间。

以上的处理方式针对于普通情况是OK的。但对于一个页面被多个不同的模块使用,又需要判断所在的模块是否有权限的情况就另当别论了!

时间: 2024-09-11 08:38:02

浅谈在ASP.NET的权限控制机制的相关文章

介绍Android平台的安全架构及其权限控制机制

本文从 Android 层次化安全架构入手,详细地介绍 Android 平台的安全架构及其权限控制机制,涵盖 Android 应用程序权限申请方法等,并从源代码实现层面来解析该机制. Android 层次化安全架构 Android 作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application).根据 Android 的软件框图,其软件层次结构自下而上分为以下几个层次: 操作系统层(OS) 各种库(Libraries)和 And

用ASP实现分级权限控制

控制 本文实现的是一个帐务管理系统中分级权限的控制,程序使用ASP和JavaScript编写,在装有IIS4.0的win NT服务器上运行,速度快,易维护. 权限级别划分如下: ①.院长和财务科长:不能输入,可以无限制查询.统计: ②.副院长:不能输入,可以查询.统计其分管部门的帐务: ③.部门领导:不能输入,可以查询.统计本部门的帐务: ④.会计:能输入各部门的帐务(一个会计有时要做几个部门的帐),只能查询.统计自己输入的帐务. 涉及的数据库和字段如下 ①.JK_USER数据库及字段:id(序

浅谈在ASP.NET中数据有效性校验的方法

asp.net|数据 作为一名程序员,一定要对自己编写的程序的健壮性负责,因此数据的校验无论在商业逻辑还是系统实现都是必不可少的部分. 我这里总结了一种自认为比较不错的asp.net(C#)的数据校验方法,如大家探讨. 主要用Regex的IsMatch方法,在BusinessRule层进行校验数据的有效性,并将校验的方法作为BusinessRule层基类的一部分. 在WebUI层现实提示信息. using System;using System.Data;using System.Text.Re

浅谈标题以及描述的长度控制

标题和描述怎么写很重要,很多人都知道.因为这直接关系到SEO,而SEO又是作用于搜索引擎教程,所以我们在写标题和描述之前必须先了解一下搜索引 擎. 搜索引擎的服务对象是人.以人为本绝对是它不断求索的目标,不可以想象一个脱离了人的,被人所背弃了的搜索引擎该怎样生存. 居于这样的里推断,我们可以判定,网站怎么做对于网站的最终浏览者(普通网民)有利,搜索引擎就对对该网站比较亲睐,从而给予它高权重;而如果某个 网站的SEO做得好,但搜索引擎却不给予权重,这是因为他们的SEO是做给机器看得,而不是人. 所

浅谈生产车间管理现场生产控制的日常工具

1.生产日程图:表明计划期内各项生产活动日程次序的工具,它是根据各项生产活动的开始和完工日期而建立的.在实际工作中,每个车间的月份或日程 生产计划任务都可以用生产日程图的形式来表现,每项生产活动都可以根据生产日程图来安排与控制.由生产日程图可以获得以下信息:生产产品的品种.产量.开始和完工日期:各项生产作业的先后次序:不同时期需用设备的数量:不同时期所需材料或毛坯.零部件的种类和数量.根据以上信息,就可以控制每种物资材料的投入日期和投入量:控制毛坯.零部件和产品的投入.产出和生产进度:制定设备的

一起谈.NET技术,浅谈思路严谨的用户在线状态控制【附部分C#参考代码】

我们经常会遇到: 1:客户购买了5个用户的许可,10个用户的许可,软件需要限制用户的并发数量,我知道就是Oracle的并发用户达到20个以上,那费用是非常昂贵的. 2:一个用户只能登录一次或者是一个账号在同一时间只能登录一个,若已经是登录了就不让再登录了,需要能控制用户的并发登录问题. 3:有的系统也需要能实现在线用户列表.用户的登录状态等,特别是即时消息功能的内部管理系统等. 先把自己的思路整理图贴出来如下: C/S的部分参考代码如下:这里为了实现定时获取消息的平滑,利用了线程的方式,这样不影

浅谈思路严谨的用户在线状态控制【附部分C#参考代码】

我们经常会遇到: 1:客户购买了5个用户的许可,10个用户的许可,软件需要限制用户的并发数量,我知道就是Oracle的并发用户达到20个以上,那费用是非常昂贵的. 2:一个用户只能登录一次或者是一个账号在同一时间只能登录一个,若已经是登录了就不让再登录了,需要能控制用户的并发登录问题. 3:有的系统也需要能实现在线用户列表.用户的登录状态等,特别是即时消息功能的内部管理系统等. 先把自己的思路整理图贴出来如下: C/S的部分参考代码如下:这里为了实现定时获取消息的平滑,利用了线程的方式,这样不影

Android 安全架构及权限控制机制剖析

Android 层次化安全架构 Android 作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application).根据 Android 的软件框图,其软件层次结构自下而上分为以下几个层次: 操作系统层(OS) 各种库(Libraries)和 Android 运行环境(RunTime) 应用程序框架(Application Framework) 应用程序(Application) 以下分别介绍 Andoid 各个层次的软件的重点及

浅谈Python浅拷贝、深拷贝及引用机制_python

这礼拜碰到一些问题,然后意识到基础知识一段时间没巩固的话,还是有遗忘的部分,还是需要温习,这里做份笔记,记录一下 前续 先简单描述下碰到的题目,要求是写出2个print的结果 可以看到,a指向了一个列表list对象,在Python中,这样的赋值语句,其实内部含义是指a指向这个list所在内存地址,可以看作类似指针的概念. 而b,注意,他是把a对象包裹进一个list,并且乘以5,所以b的样子应该是一个大list,里面元素都是a 而当a对象进行了append操作后,其实,隐含的意思是,内存中的这个l