ASP.NET通用权限验证的实现代码思路
本篇介绍通用权限验证的实现代码思路,总共分为导入参数、解析XML、根据XML配置进行处理、返回结果。
代码架构图
一、 类介绍
1.SFWebPermission:实现IHttpModule接口,权限验证入口;
2.SFConfig:导入XML配置类;
3.SFPermission:解析XML配置进行权限验证;
4.SFAccessOper:数据库操作类;
5.SFPermissionSQL:XML节点实体类;
6.SFParameter:XML节点实体类;
7.SFCommon:系统变量定义类;
8.SFConst:系统常量定义类;
9.SFPermission.xml:配置文件,格式上一篇已经介绍。
二、 代码结构
图1
图2
代码的算法实现都是用的最容易想到、最常用的编码方式,语言中比较高级的用法还真没怎么研究过,肯定是不会用啦!
权限验证是通过URL查询得到主键判断的,所以权限项目(菜单)表中要有URL列,建议是另外添加一张对应表,以为一个权限项有可能需要对应多个URL请求。
使用此组件不需要对原项目做任何的代码修改。
代码是在.net2.0框架下开发的,需要考到网站的bin目录下;
在Web.config的<system.web>节点下面添加
<httpModules> <add name="myHttpModule" type="SFPermission.SFWebPermission,SFPermission"/> </httpModules>
如果这样添加出错的话,那就<system.webServer>节点下面添加
<modules> <add name="myHttpModule" type="SFPermission.SFWebPermission,SFPermission"/> </modules>
以上就是关于ASP.NET通用权限验证的实现代码思路,希望对大家的学习有所帮助。
相关推荐
-
ASP.NET对HTML页面元素进行权限控制(一)
一个HTML页面有很多的元素比如<DIV>,<P>等.这些元素构成了HTML页面.在Web开发中权限控制是每个系统都要用到了.界面每个元素的权限也是需要控制的.比如一个查询用户的界面里面有查询用户按钮,添加用户按钮,删除用户按钮,不同的角色我们得分配不同的权限,比如一般用户只有查询用户按钮的权限:管理员有添加用户按钮,查询用户按钮的权限:超级管理员查询用户按钮,添加用户按钮,删除用户按钮的权限.如何让这三种用户在登录以后得到三种不同的界面形式呢?这时候就需要用到HTML元素进行权限
-
ASP.NET对HTML页面元素进行权限控制(三)
上一篇博客中有些没有考虑到的东西这次更改一下代码如下: 界面前台: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AdmShowDIV.aspx.cs" Inherits="ExamSystemV3.Manager.RoleManager.AdmShowDIV" %> <!DOCTYPE html> <ht
-
在ASP.NET 2.0中操作数据之二十一:实现开放式并发
导言 对于那些仅仅允许用户查看数据,或者仅有一个用户可以修改数据的web应用软件,不存在多用户并发冲突的问题.然而对于那些允许多个用户修改或删除数据的web应用软件,则有可能发生一个用户所做的更改与另一个并发用户的更改冲突.在没有任何并发策略的地方,当两个用户同时编辑某一条记录,最后提交的用户的更改将覆盖先提交的用户所作的更改. 例如,假设两个用户,Jisun和Sam,都访问我们的应用软件中的一个页面,这个页面允许访问者通过一个GridView控件更新和删除产品数据.他们都同时点击GridVie
-
ASP.net做的IP访问限制
偶做留言本的时候想起做这么个,具体思路也许不好,做出来只是抛砖引玉,希望有更好的方法! IP添加页是用了一个ListBox, TextBox,两个Button,而在其他的页上则直接用当前IP对比数据库中的IP,代码如下! 限制IP添加页HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ip.aspx.cs" Inherits="admin_ip"
-
在ASP.NET 2.0中操作数据之二十二:为删除数据添加客户端确认
导言 在前面一些教程中,我们已经看到如何使用应用程序框架,ObjectDataSource,以及那些提供增.改.删功能的数据Web控件.在我们已经实现的删除数据的界面中,包含一个删除按钮,当点击它的时候,会导致数据回传以及调用ObjectDataSource的Delete()方法.然后Delete()方法会调用对应业务逻辑层中的方法,再进入数据访问层,直至调用最终操作数据库的DELETE语句. 虽然这个界面已经能够让用户通过GridView,DetailsView,或者FormView控件来删除
-
在ASP.NET 2.0中操作数据之二十三:基于用户对修改数据进行限制
导言 很多Web程序都支持用户帐号,根据不同的登录用户提供不同的选项,报表等功能.例如,就我们的教程中,我们要允许供应商公司的一些账户能登录网站并更新它们的产品-包括产品名称和单价,或许还有供应商的信息,比如它们的公司名称,地址,以及联系人信息等等.此外,可能我们还想包含一些帐号留给我们自己公司用户,以便让它们能够登录并进行产品信息修改,比如股价,级别调整等等.我们的Web程序同时也可以允许匿名登录,但是仅仅让这些用户浏览数据.并包含一个系统用户,通过对ASP.NET页面中的数据控件能够进行数据
-
ASP.NET对HTML页面元素进行权限控制(二)
这是这个权限控制的第一步,扫描界面把要分配权限的元素的信息获取出来存入到数据库中. 这一步分三小步: (1).标出界面所要分配权限的元素 (2).扫描界面获取所要分配权限的元素信息.(ID,标题,层级关系) (3).存入数据库中. 1.标出界面所要分配权限的元素. 在扫描的时候一开始我觉得很难因为HTML元素过多又有很多层级关系.一开始用的是<div>标签来表示HTML所要分配权限的元素,发现这个方案不行,比如把添加用户按钮加上DIV那么这个按钮的样式就变了还得调样式我现在做的KS系统有将近1
-
在ASP.NET 2.0中操作数据之二十:定制数据修改界面
简介 GridView和DetailsView控件通过绑定列和CheckBox列,可以简化数据编辑界面制作,呈现只读,编辑和新增界面,我们不需要增加元素标记或编写任何额外代码就可以得到这些界面.然而,绑定列和CheckBox列呈现的界面却缺乏实际应用中经常用到的定制功能.为了对GridView和DetailsView的编辑.新增界面进行定制,需要用模板列(TemplateField)替换原有列. 在上节教程中我们讨论如何增加验证控件来定制数据编辑界面,而本节教程将演示如何使用Web控件对实际的数
-
Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
1.用户登录 验证用户是否登录成功步骤直接忽略,用户登录成功后怎么保存当前用户登录信息(session,cookie),本文介绍的是身份验证(其实就是基于cookie)的,下面看看代码. 引入命名空间 using System.Web.Security; 复制代码 代码如下: Users ModelUser = new Users() { ID = 10000, Name = UserName, UserName = UserName, PassWord = PassWord, Roles =
-
asp.net(c#)不可访问,因为它受保护级别限制
今天写一个复数类的时候出现的错误,原来的代码精简后如下: public class complex { //构造函数 complex(double r, double i) { complex_real = r; complex_imagin = i; } } 这里就很郁闷,JAVA这样写没问题,而c#却对这个有很大要求,在某些场合,一定要申明为public,不过出现这样的错误,一般都是修饰符错误引起的,比如
随机推荐
- Windows Powershell强类型数组
- seajs1.3.0源码解析之module依赖有序加载
- CSS3实现3D文字动画效果
- IIS 各种身份验证详细测试第1/2页
- Windows2003下批量添加和导出所有ip BAT脚本
- Java实现FTP批量大文件上传下载篇1
- 详解nodejs中express搭建权限管理系统
- php实现随机显示图片方法汇总
- css expression 隔行换色
- js实现键盘上下左右键选择文字并显示在文本框的方法
- JavaScript使用cookie记录临时访客信息的方法
- Ajax提交参数的值中带有html标签不能提交成功的解决办法(ASP.NET)
- 图片向上滚动
- Python用模块pytz来转换时区
- C# 获取程序集版本、文件版本
- ASP文件中的安全问题
- H5混合开发IOS中遇到的坑
- 为什么MySQL数据库索引选择使用B+树?
- Oracle中字符串截取常用方法总结【推荐】
- Scrapy-Redis结合POST请求获取数据的方法示例