惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
I
InfoQ
B
Blog RSS Feed
D
Docker
GbyAI
GbyAI
N
Netflix TechBlog - Medium
Y
Y Combinator Blog
F
Fortinet All Blogs
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
C
Check Point Blog
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
博客园 - Franky
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
Last Week in AI
Last Week in AI
L
LangChain Blog

博客园 - sun@live

两段代码 <收藏>提高Web性能的14条法则(详细版) MOSS与业务系统的集成 之 单点登录 MOSS与业务系统的集成 之 自定义Membership实现Forms方式验证 手机归属地数据—采集 .Net数据源自定义参数 JavaScript和CSS速查手册 序列化一个字符串到CDATA元素(.NET 1.1) Sandcastle工具SandcastleBuilder 清除字符串数组中,重复元素 - sun@live - 博客园 Windows Live Writer 写的一个双向选择器(JS) (原创)一个改自java的代码统计工具 Web2.0用户注册,激活,密码找回模块 [学习日志]EyasBlog控件部分已基本完成-2005-12-03 学习日志(blog日历控件)-2005年11月12日 学习日志(Blog架构)-2005年11月09日 学习日志-2005年11月09日 学习计划-2005年11月07日
论坛中,用户权限解决方法
sun@live · 2006-03-21 · via 博客园 - sun@live

一个论坛系统中,有N个版块,版块中,不同角色应给予不同权限。
看了应用系统权限表示的算法技巧 里面讲了两种方法,第一种方法,只能解决单权限问题,第二种方法,用的是位权方法,存在一种这样的问题,如果新增了一种权限,所用的权限位就必须新增一位,造成系统可扩展性差。
    大家知道,C++里面,窗体的样式,不是多一种样式,就在后面|(or)一位,这样一来,权限问题就好解决了,扩展性就强了。
    先定义权限值:

public class rights
{
    
public static int view  = 1;
    
public static int post  = 2;
    
public static int edit  = 4;
    
public static int delete = 8;
    
//
}

假如我们要给Group1赋予可查看、可发表权限,那么他的权限值就为:

//
group1Rights = rights.view | rights.post;
//group1Rights = 3;
//

反过来,如果Group2的权限值为6,我们要确定他的权限:

//
int g2rights = 6;
bool isView = ((g2rights & rights.view)==rights.view);
//false
bool isPost = ((g2rights & rights.post)==rights.post);
//true
bool isEdit = ((g2rights & rights.edit)==rights.edit);
//true
bool isDelete = ((g2rights & rights.delete)==rights.delete);
//false
//

当然,这些可以封装在一个类里。这里只是演示下。。。。。