国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > VBScript > 正文

基于邏輯運(yùn)算的簡(jiǎn)單權(quán)限系統(tǒng)(原理,設(shè)計(jì),實(shí)現(xiàn)) VBS 版

2020-03-24 16:48:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

首發(fā)于: http://cs.alienwave.cn/Topic/329.aspx

看到好多同學(xué)權(quán)限判斷都是用字符串 然后或分割或截取
其實(shí)對(duì)于 允許/不允許(true/false) 這種的權(quán)限, 用邏輯運(yùn)算再恰當(dāng)不過了
聲明下: 本文針對(duì)入門和為掌握的同學(xué), 如果已經(jīng)懂了那可以無(wú)視了
可能意思表達(dá)的不是很清楚, 敬請(qǐng)?jiān)?

邏輯運(yùn)算符介紹:
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 = 1
0 Xor 1 = 1
1 Xor 0 = 1
1 Xor 1 = 1
Not: 邏輯非
Not 1 = 0
Not 0 = 1

表達(dá)方式介紹:
1 表示 ture, 0 表示 false
舉二位為例
第一位 表示 Read 的權(quán)限, 第二位 表示 Write 的權(quán)限, 可以表示一下四種權(quán)限
00 Read(false) Write(false)
01 Read(true) Write(false)
10 Read(false) Write(true)
11 Read(true) Write(true)

運(yùn)算方式介紹:
還是繼續(xù)上面的例子
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

下面給出示例代碼:
權(quán)限定義類(要有枚舉類型該多好啊...)
Class PermissionTypePublic ReadPublic WritePublic DeletePrivate Sub Class_InitializeRead = 1Write = 2Delete = 4End SubEnd Class
權(quán)限類
Class PermissionSetComponentPrivate intValuePublic Property Get Read()Read = GetValue(Permission.Read)End PropertyPublic Property Let Read(arg)Call SetValue(Permission.Read, arg)End PropertyPublic Property Get Write()Write = GetValue(Permission.Write)End PropertyPublic Property Let Write(arg)Call SetValue(Permission.Write, arg)End PropertyPublic Property Get Delete()Delete = GetValue(Permission.Delete)End PropertyPublic Property Let Delete(arg)Call SetValue(Permission.Delete, arg)End PropertyPublic Property Get Value()Value = intValueEnd PropertyPublic Property Let Value(arg)intValue = argEnd PropertyPublic Function GetValue(intType)GetValue = (Value and intType) = intTypeEnd FunctionPublic Sub SetValue(intType, boolValue)IF (boolValue) ThenValue = Value Or intTypeElseValue = Value And (Not intType)End IFEnd SubEnd Class
運(yùn)用示例代碼:
Dim Permission : Set Permission = new PermissionTypeDim PermissionSet : Set PermissionSet = new PermissionSetComponentPermissionSet.Value = 0w( Read: )PermissionSet.Read = falsew(PermissionSet.Value & PermissionSet.Read)PermissionSet.Read = truew(PermissionSet.Value & PermissionSet.Read)w( Write: )PermissionSet.Write = falsew(PermissionSet.Value & PermissionSet.Write)PermissionSet.Write = truew(PermissionSet.Value & PermissionSet.Write)w( Delete: )PermissionSet.Delete = falsew(PermissionSet.Value & PermissionSet.Delete)PermissionSet.Delete = truew(PermissionSet.Value & PermissionSet.Delete)Function w(o)Response.Write( br / & o)End Function

今天的課程就到這里, 大家可以舉一反三, 下課...html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 宿州市| 邵阳县| 贵南县| 无为县| 余干县| 崇左市| 凌源市| 郯城县| 措勤县| 五莲县| 福州市| 咸宁市| 扎囊县| 博兴县| 保德县| 乳山市| 葵青区| 汕尾市| 讷河市| 沙雅县| 滨州市| 扶沟县| 甘泉县| 合肥市| 黔江区| 来安县| 定陶县| 赣榆县| 泗洪县| 衡水市| 阿城市| 保德县| 盐亭县| 舒城县| 小金县| 崇明县| 获嘉县| 东安县| 广安市| 余江县| 昌邑市|