巧妙运用二进制验证权限

在权限分配中有多个权限级别,不同用户分别有多个不同的权限。

论坛的权限:

查看、发帖、投票、搜索

用户的权限:

用户A:查看、发帖

用户B:查看

用户C:查看、发帖、投票、搜索

分析:

有四种不同的权限级别,总共2^4种权限分配方式。

像这样权限等级划分和不同级别用户的权限分配采用二进制方式权限分配验证方式是最好的选择。 即每一个操作权限都用一个二进制数表示(1、10、100、1000)。总共的权限种类有2^n种,n即代表权 限类别。在C#中long类型有64位,所以总共有64类权限,2^64种权限分配方式。权限的分配、删除、查 看都采用二进制运算实现。

long userrolevalue;//用户的操作权限

long oprolevalue;//一个操作的权限

1.权限的分配(或运算)

userrolevalue = userrolevalue | oprolevalue

(00001110)2=(00000010)2|(00000100)2|(00001000)2

时间: 2024-08-01 16:59:04

巧妙运用二进制验证权限的相关文章

二进制交叉权限微型php类详解

 这篇文章主要介绍了二进制交叉权限微型php类,需要的朋友可以参考下 靓点: 1.多对多交叉场景分配: 2.php新特性-闭包使用.批处理函数array_walk/array_flip使用: 3.位运算&使用案例:   使用场景: 1.常见增删改查(2的N次方值入库): 2.认证.第三方账号绑定.多分类选择:    代码如下: <?php   class s_allow{   //声明使用场景,任务清单 public $scene,$case_list=array();   //声明指定用户

巧妙设置Sybase用户权限来处理进程

在使用Sybase数据库的过程中,我们经常会遇到Sybase数据库系统上锁的情况,而多数情况下,用户必须通过超级用户身份登录系统,以处理该进程.通常为了保障Sybase数据库系统的安全性,超级用户口令往往掌握在数据库管理员的手中. 当上述情况发生时,如果数据库管理员不在现场或无法通过其他方式进行处理时,口头告知密码虽然可以解决一时的燃眉之急,但数据库系统的安全无疑会受到严重的威胁;而重新启动Sybase数据库系统也是一种解决的方法,不过这种作法很有可能造成数据库中数据的丢失,甚至导致用户数据库的

巧妙使用用NTFS权限 保卫IE安全

  恶意软件猖獗,IE似乎是他们永远的目标,因为IE为系统自带,所以普及率高.占领了IE,基本上就可以顺着这条线"流氓"起来.因此保卫好IE,意义非常重大(使用本文中的方法前提是系统所在分区为NTFS格式). 一.未中招前的保卫方法 如果是刚装的系统,还没有感染恶意软件或者病毒,在这种情况下,比较好办,只要取消所有用户对IE文件夹的写权限就可以了,这样一些恶意软件企图植入IE时,因为没有"写"权限,当然植入也就不能成功了. 进入系统盘的Program Files文件

二进制交叉权限微型php类分享_php实例

靓点:1.多对多交叉场景分配:2.php新特性-闭包使用.批处理函数array_walk/array_flip使用:3.位运算&使用案例: 使用场景:1.常见增删改查(2的N次方值入库):2.认证.第三方账号绑定.多分类选择: 复制代码 代码如下: <?php class s_allow{ //声明使用场景,任务清单public $scene,$case_list=array(); //声明指定用户角色.允许值.允许清单public $allow_value=0,$allow_list=ar

Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码_实用技巧

1.用户登录 验证用户是否登录成功步骤直接忽略,用户登录成功后怎么保存当前用户登录信息(session,cookie),本文介绍的是身份验证(其实就是基于cookie)的,下面看看代码. 引入命名空间 using System.Web.Security; 复制代码 代码如下: Users ModelUser = new Users() { ID = 10000, Name = UserName, UserName = UserName, PassWord = PassWord, Roles =

详解ABP框架的参数有效性验证和权限验证_基础应用

参数有效性验证应用程序的输入数据首先应该被检验是否有效.输入的数据能被用户或其他应用程序提交.在Web应用中,通常进行2次数据有效性检验:包括客户端检验和服务端检验.客户端的检验主要是使用户有一个好的用户体验. 首先最好是在客户端检验其表单输入的有效性并且展示给客户端的那些字段输入是无效的.但是,服务器端的校验是更关键和不可缺失的(不要只做客户端检验而不做服务器端检验). 服务器端的检验通常是被应用服务(层)执行,应用服务(层)中的方法首先检验数据的有效性,然后才使用这些通过验证的数据.ABP的

Asp.net Mvc 身份验证、异常处理、权限验证 代码

本问主要介绍asp.net的身份验证机制及asp.net MVC拦截器在项目中的运用.现在让我们来模拟一个简单的流程:用户登录>权限验证>异常处理. 1.用户登录 验证用户是否登录成功步骤直接忽略,用户登录成功后怎么保存当前用户登录信息(session,cookie),本文介绍的是身份验证(其实就是基于cookie)的,下面看看代码. 引入命名空间  代码如下 复制代码 using System.Web.Security; Users ModelUser = new Users() { ID

【自然框架】之通用权限的Demo(二):添加人员、添加账户、添加角色里面的账户以及列表的权限验证

        看了一下上一次发Demo的日期6月15日,已经过了半个多月,这个速度也实在是太慢了.还是心情的原因,恩,心理承受能力太弱了,哈哈.不过还是要坚持的,要继续下去.       还是先说一下这次的Demo里增加的内容吧.         1.添加人员             这个很简陋了,主要就是为了能够添加一条人员信息,然后可以给这个人员来添加账户.不过后续我会把这一块完善一下的,能够实现一些基本的人员管理的功能.         2.添加账户             先选择一个人

权限设计及算法(PHPE)

设计|算法 权限设计 大概有这几种模式:用户+组+角色+权限用户+组+权限用户+角色+权限用户+权限 最近看了别人的设计方法,大多以"整数"来表示权限值,如添加.浏览.删除和修改,分别用1.2.4.8这几个整数来代替,不过,各人的做法有所不同,举例如下: 1.用2的n次幂组成权限值的集合,如1.2.4.8.16...,某用户的权限值为其子集中的整数之和,如 7=1+2+4,5=1+4.如果要从数据库检索包含某几种权限的用户,则先把这几种权限值相加,假设和为k,然后select * fr