基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版_vbs

作者:slightboy
看到好多同学权限判断都是用字符串 然后或分割或截取

其实对于 允许/不允许(true/false) 这种的权限, 用逻辑运算再恰当不过了

声明下: 本文针对入门和为掌握的同学, 如果已经懂了那可以无视了

 可能意思表达的不是很清楚, 敬请原谅. 

逻辑运算符介绍:
And: 逻辑与

0 And 0 = 0 
0 And 1 = 0 
1 And 0 = 0 
1 And 1 = 1 
Or: 逻辑或

0 Or 0 = 0 
0 Or 1 = 1 
1 Or 0 = 1 
1 Or 1 = 1 
Xor: 异或

0 Xor 0 = 0 
0 Xor 1 = 1 
1 Xor 0 = 1 
1 Xor 1 = 0 
Not: 逻辑非

Not 1 = 0 
Not 0 = 1 

表达方式介绍:

1 表示 ture, 0 表示 false

举二位为例

第一位 表示 Read 的权限, 第二位 表示 Write 的权限, 可以表示一下四种权限

00 Read(false) Write(false) 
01 Read(true) Write(false) 
10 Read(false) Write(true) 
11 Read(true) Write(true) 

运算方式介绍:

还是继续上面的例子

Read = 01(1), Write = 10(2)

00(0) And Read = 0 
01(1) And Read = Read 
10(2) And Read = 0 
11(3) And Read = Read 
00(0) And Write = 0 
01(1) And Write = 0 
10(2) And Write = Write 
11(3) And Write = Write 

下面给出示例代码:

权限定义类(要有枚举类型该多好啊...)

Class PermissionType

    Public Read
    Public Write
    Public Delete

  Private Sub Class_Initialize
    Read = 1
    Write = 2
    Delete = 4
  End Sub

End Class
权限类

Class PermissionSetComponent

    Private intValue

  Public Property Get Read()
    Read = GetValue(Permission.Read)
  End Property

  Public Property Let Read(arg)
    Call SetValue(Permission.Read, arg)
  End Property

  Public Property Get Write()
    Write = GetValue(Permission.Write)
  End Property

  Public Property Let Write(arg)
    Call SetValue(Permission.Write, arg)
  End Property

  Public Property Get Delete()
    Delete = GetValue(Permission.Delete)
  End Property

  Public Property Let Delete(arg)
    Call SetValue(Permission.Delete, arg)
  End Property

  Public Property Get Value()
    Value = intValue
  End Property

  Public Property Let Value(arg)
    intValue = arg
  End Property

  Public Function GetValue(intType)
    GetValue = (Value and intType) = intType

  End Function

  Public Sub SetValue(intType, boolValue)
    IF (boolValue) Then
        Value = Value Or intType
    Else
        Value =  Value And (Not intType)
    End IF
  End Sub

End Class
运用示例代码:

Dim Permission : Set Permission = new PermissionType

Dim PermissionSet : Set PermissionSet = new PermissionSetComponent
PermissionSet.Value = 0
w("Read:")
PermissionSet.Read = false
w(PermissionSet.Value &" "& PermissionSet.Read)

PermissionSet.Read = true
w(PermissionSet.Value &" "& PermissionSet.Read)

w("Write:")
PermissionSet.Write = false
w(PermissionSet.Value &" "& PermissionSet.Write)

PermissionSet.Write = true
w(PermissionSet.Value &" "& PermissionSet.Write)

w("Delete:")
PermissionSet.Delete = false
w(PermissionSet.Value &" "& PermissionSet.Delete)

PermissionSet.Delete = true
w(PermissionSet.Value &" "& PermissionSet.Delete)

Function w(o)
    Response.Write("<br />"& o)
End Function

今天的课程就到这里, 大家可以举一反三, 下课...

时间: 2024-10-14 20:42:41

基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版_vbs的相关文章

基于逻辑运算的简单权限系统(实现) JS 版_javascript技巧

作者: slightboy, 时间: 2006-10-17 此篇为 JS 实现版本, 以前作已交待原理 故不在此多做解释 如需原理介绍 请查看 VBS 版. var PermissionType = {     Read : 1,     Write : 2,     Delete : 4 } function PermissionSetComponent(value) {     this.Value = value;     this.getRead = function()     {  

通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计

一.权限系统 这一天将讲述一个基本的基于数据库的权限管理系统的设计,在这一天的课程的最后将讲述"左右值无限分类实现算法"如何来优化"系统菜单"的结构而告终.今天的内容和前几天的基础框架是一样的它们都属于基础知识,在这些基础知识上还可以扩展出无数的变种与进化设计. 二.先来看客户的一个需求 2.1用户实际需求 1.       所有的用户.角色可动态配置 2.       所有的系统菜单的权限要求具体到"增,删,改.查.打印.导出"这样的小权限的设

基于Redis的限流系统的设计

基于Redis的限流系统的设计,主要会谈及限流系统中限流策略这个功能的设计:在实现方面,算法使用的是令牌桶算法来,访问Redis使用lua脚本. 1.概念 限流是对系统的出入流量进行控制,防止大流量出入,导致资源不足,系统不稳定. 限流系统是对资源访问的控制组件,控制主要的两个功能:限流策略和熔断策略,对于熔断策略,不同的系统有不同的熔断策略诉求,有的系统希望直接拒绝.有的系统希望排队等待.有的系统希望服务降级.有的系统会定制自己的熔断策略,很难一一列举,所以本文只针对限流策略这个功能做详细的设

基于RBAC模型的权限管理系统的设计和实现

摘要:提出了基于RBAC模型的权限管理系统的设计和实现方案.介绍了采用的J2EE架构的多层体系结构设计,阐述了基于角色的访问控制RBAC模型的设计思想,并讨论了权限管理系统的核心面向对象设计模型,以及权限访问.权限控制和权限存储机制等关键技术. 关键词:权限管理系统:角色:访问控制:RBAC模型:J2EE:LDAP 0 引言 管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁.构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的.权限管理系统是管理信息系统中可代码重

基于Hadoop的视频监控系统的设计与实现

基于Hadoop的视频监控系统的设计与实现 内蒙古大学  梁师师 随着平安中国项目的深入,公众对视频监控的需求越来越强烈.摄像头等视频采集设备的清晰度不断提高,监控器的个数不断增加,对视频处理的需求不断提高,这与传统的网络视频监控系统架构发生矛盾.而日益兴起的云计算为视频监控开辟了一条新的道路,云视频监控系统满足了大数据计算.存储的要求,解决了传统的视频监控系统的缺陷.本文的工作正是在云计算技术基础上搭建大规模高清视频监控系统.本文首先简单介绍视频监控技术的发展过程和目前视频监控技术遇到的瓶颈问

基于云计算SaaS模式OA系统的设计与实现

基于云计算SaaS模式OA系统的设计与实现 冀汶莉 李向军 戴旭 为了适应信息技术和互联网的快速发展,中小企业需要开发适应其个性化要求的OA系统,同时需要有效降低系统运行和维护成本,文中提出了基于云计算的软件即服务(SaaS)的新思路来设计和实现OA系统.系统通过选用Google云计算平台作为开发开台,使用了对象映射.数据持久化等关键技术,设计实现了一个面向中小企业.可定制化服务.基于Google App Engine的SaaS模式OA系统.在实际应用中,OA系统以SaaS服务的形式部署于公有云

通向架构师的道路 第六天 漫谈基于数据库的权限系统的设计

一.权限系统 这一天将讲述一个基本的基于数据库的权限管理系统的设计,在这一天的课程的最后将讲述"左右值无限分类实现算法"如 何来优化"系统菜单"的结构而告终.今天的内容和前几天的基础框架是一样的它们都属于基础知识,在这些基础知识上还可以 扩展出无数的变种与进化设计. 二.先来看客户的一个需求 2.1 用户实际需求 1. 所有的用户.角色可动态配置 2. 所有的系统菜单的权限要求具体到"增,删,改.查.打印.导出"这样的小权 限的设计 3. 所有的

基于Web在线考试系统的设计与实现

这是一个课程设计的文档,源码及文档数据库我都修改过了,貌似这里复制过来的时候图片不能贴出,下载地址:http://download.csdn.net/detail/sdksdk0/9361973   数据库原理课程设计说明书              基于Web在线考试系统的设计与实现             目  录   1 课题背景与意义.3 1.1课题开发背景.3 1.2 课题开发意义.3 2 系统需求分析.4 2.1 项目要求.4 2.2 开发方案.5 2.3开发环境.5 3 总体开发.

通用权限系统框架功能实现设计

1  开发环境技术:B/S(.NET C# ) 1.Windows 7及以上 (支援最新Win 8) 2.Microsoft Visual Studio 2013 C#.NET 3..NET Framework 4.0及以上 (支援最新4.5版本) 4.SQL Server 2008 R2及以上 (支援2012/2014)框架特点 2  系统简介 1.帮企业快速地实现各种通用功能,结合系统现有的通用权限管理功能. 2.快速地开发出各种项目应用系统.让企业开发一个系统变得非常轻松. 3.符合RBA