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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 9527的晃悠人生

(转)使用Visual Studio.net调试javascript最方便的方法 jsoho.com介绍 测试 学习计划 用log4net快速构建asp.net 异常日志 查找某些记录中重复的记录 竞猜系统设计文档 足球联赛竞猜管理 遍厉目录下文件和子目录 自定义下载文件名 用C#实现将html文件转换为chm文件 调试断点的条件设置 Asp.net 中 页面无刷新的做法 内容服务中的大文本处理。 关于Asp的性能优化 Insert 一个字段类型是自动增量的,又要写入变量 第三方的数据控件、分页控件 关于网络文学站的相关事宜 利用PD进行数据库建模
简单权限验证的方法
9527的晃悠人生 · 2005-06-01 · via 博客园 - 9527的晃悠人生

权限验证一直是各类大大小小的系统中核心的问题。如果一个系统权限验证都只有是否两类情况,不存在多值的情况,可以考虑用一个整数保存权限。

1。定义好各个功能在权限串中的位置,如 10001 的意义是
新增文章权限 1
修改文章权限 0
删除文章权限 0
搜索文章权限 0
发送短信权限 1

这里有一个限制,只能加,不能减少功能点,也就是在做设计时,必须仔细分析系统对应的功能点,并尽量细化,达到最小颗粒的状态。

2。以论坛为例,既有用户组权限也有版权限(栏目权限),也就是操作权限和数据权限的关系,一个用户真正的权限应该是这两组权限的交集,当然也有可能是权限优先级的问题,当各组权限出现冲突的时候,以某一组权限为标准。
得出权限交集的做法:
public static void Main()
{
int p1 = 1010;
int p2 = 0110;
//p3就是最终要保存下来的某个用户组在某个版的权限串
int p3 = MyClass.method1( p1,p2);

}
public static int method1(int p1, int p2)
{
int n1 = Convert.ToInt32(p1.ToString(), 2);
int n2 = Convert.ToInt32(p2.ToString(), 2);
int result = n1 & n2;
return Int32.Parse(Convert.ToString(result, 2));
}

3。保存权限串到Cache,系统运行时,从Cache中读取权限串进行权限验证。
如权限串10010,要判断是否有修改文章的权限,要判断权限串从左起第2位的值,
   int p1 = 10010;
    //1 有操作权限 0 无操作权限
   int r1 = int.parse( ((p1>>3)%2).ToString());

这样的做法,应该能使权限验证的代价减到最小,但不适用于有多值的权限,
特别谢谢csdn的

fancyf(凡瑞)