久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

最新廣告
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
工業(yè)智能邊緣計(jì)算2025年會
CAIAC 2025
2025工業(yè)安全大會
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

InTouch7.1中實(shí)現(xiàn)安全功能的方法
  • 企業(yè):控制網(wǎng)     領(lǐng)域:儀器儀表     行業(yè):其他    
  • 點(diǎn)擊數(shù):3229     發(fā)布時(shí)間:2003-11-17 14:53:00
  • 分享到:

李德華,許立梓,李文國

1  引言
InTouch是當(dāng)今最流行的工控軟件開發(fā)工具之一,是美國Wonderware公司開發(fā)的世界上第一個(gè)集成的、基于組件的MMI(生產(chǎn)制造管理信息)系統(tǒng)FactorySuite2000中的一個(gè)核心組件。它具有世界領(lǐng)先的HMI(人機(jī)接口界面)和面向?qū)ο蟮膱D形開發(fā)環(huán)境,便于高效、快捷地配置用戶的應(yīng)用程序。筆者在使用InTouch7.1開發(fā)工控軟件的過程中發(fā)現(xiàn)在安全功能的實(shí)現(xiàn)上,傳統(tǒng)的方法不能完全滿足用戶的要求,因而有必要在此進(jìn)行探討并給出解決方案。
2  實(shí)現(xiàn)安全功能的傳統(tǒng)方法
2.1  方法一:用InTouch7.1自帶的安全功能菜單
InTouch7.1包括WindowMaker和WindowViewer兩部分。其中,WindowMaker是InTouch的可視化開發(fā)環(huán)境,用于開發(fā)基于Windows的應(yīng)用程序;WindowViewer是InTouch的運(yùn)行環(huán)境,顯示和執(zhí)行在WindowMaker中編寫好的應(yīng)用程序。InTouch自帶的安全功能,在WindowMaker和WindowViewer的Security菜單下均可以找到,有關(guān)選項(xiàng)包括Log on、Change Password、Configure Users和Log off。一般來說,客戶使用應(yīng)用程序,都是運(yùn)行在WindowViewer環(huán)境下,而不允許切換到WindowMaker下去修改源程序,即安全功能是通過對WindowViewer的Security菜單操作來實(shí)現(xiàn)的。但這種方法有以下幾種弊端:
(1)  開發(fā)國內(nèi)的工控軟件,界面的文字一般都使用中文,但I(xiàn)nTouch7.1是英文版,Security菜單下的各選項(xiàng)和其中的設(shè)置內(nèi)容都是用英文顯示,因而不協(xié)調(diào)。
(2)  Security菜單的位置固定在窗口的最上方,不夠靈活,有時(shí)同整個(gè)系統(tǒng)的界面不一致。
(3)  在InTouch7.1中用戶權(quán)限設(shè)置是通過Configure Users窗口里的Access Level(0~9999)來設(shè)定的,權(quán)限最高是9999,權(quán)限最低是0,為缺省權(quán)限。什么樣的權(quán)限享有什么樣的功能可以在軟件編寫的時(shí)候通過語句來控制。這樣帶來一個(gè)管理上的不便,就是要附加一份權(quán)限和功能對應(yīng)的記錄交給客戶,客戶必須嚴(yán)格遵循這份記錄來設(shè)定用戶的級別,而且也不夠直觀。
2.2  方法二:創(chuàng)建控件和使用系統(tǒng)變量
在InTouch7.1中,提供了能實(shí)現(xiàn)安全功能的對外接口,這些接口都屬于系統(tǒng)變量。它們分別是$Operator、$AccessLevel、$OperatorEntered、$PasswordEntered、$ChangePassword和$ConfigureUsers。其中,$OperatorEntered和$PasswordEntered分別對應(yīng)用戶名輸入和用戶密碼輸入,用于用戶登陸,當(dāng)它們的值都輸入正確時(shí),$Operator和$AccessLevel就會分別設(shè)置為當(dāng)前用戶名和當(dāng)前用戶的對應(yīng)權(quán)限,這兩項(xiàng)要先在Configure Users窗口里配置好。另外,把$ChangePassword和$ConfigureUsers置1,能分別顯示Security菜單中的Change Password和Configure Users對話窗口。因此,我們可以在WindowViewer的屬性設(shè)置中把Security菜單隱藏起來,而用InTouch7.1里的控件和Script語言來重新創(chuàng)建能實(shí)現(xiàn)Security菜單同樣功能的安全功能條(如圖1所示)。單擊登陸、改變密碼和設(shè)置用戶可分別彈出對應(yīng)的窗口(如圖2所示)。其中,登陸窗口是自己用控件創(chuàng)建的,Change Password窗口和Configure Users窗口都是InTouch自帶的,因而是英文界面。方法二比方法一在界面設(shè)計(jì)上多了一些靈活性,克服了方法一中的第二種弊端,但由于使用了$ChangePassword和$ConfigureUsers系統(tǒng)變量,因而也避免不了方法一中的第一、三種弊端。

 
圖1  安全功能條

 


圖2  登陸、更改密碼和設(shè)置用戶的窗口

3  實(shí)現(xiàn)安全功能的新方法
該方法是對方法二的改進(jìn),它不使用$ChangePassword和$ConfigureUsers系統(tǒng)變量,而是開發(fā)人員自己創(chuàng)建更改密碼窗口和配置用戶窗口(如圖3所示)。

 


圖3  更改密碼窗口和配置用戶窗口

但是,這樣做會帶來一個(gè)難題就是自行創(chuàng)建的窗口如何讀取系統(tǒng)的用戶管理數(shù)據(jù)文件的數(shù)據(jù)。InTouch7.1并沒有提供這樣的接口。但提供了訪問數(shù)據(jù)庫的接口,因而,我們自己可以建立一個(gè)用戶管理數(shù)據(jù)表,表中有UserName、Password和Privilege 3個(gè)字段,分別記錄圖3配置用戶窗口中的用戶名、密碼和用戶身份,密碼窗口和配置用戶窗口可直接對這個(gè)數(shù)據(jù)表進(jìn)行讀寫;另一方面,當(dāng)用戶登陸時(shí),根據(jù)用戶名和密碼來查找這個(gè)數(shù)據(jù)表中的匹配記錄,如果找到(只能有一個(gè)記錄符合),就把這條記錄的Privilege字段值讀取出來,再以這個(gè)值為真正的系統(tǒng)用戶名,加上對應(yīng)密碼(這兩個(gè)值已在Configure Users窗口中配置好)分別賦值給$OperatorEntered和$PasswordEntered來登陸InTouch系統(tǒng)。用戶管理數(shù)據(jù)表在這里的作用類似網(wǎng)絡(luò)中防火墻的功能,要登陸的用戶必須先經(jīng)過它來驗(yàn)證身份,通過后再以相應(yīng)的身份登陸InTouch系統(tǒng)。
為了進(jìn)一步說明,下面著重舉例說明配置用戶窗口和登陸窗口的實(shí)現(xiàn)方法,更改密碼窗口的做法類似。
第一步,在Security菜單的Configure Users窗口中,做如圖2中Configure Users窗口中的用戶設(shè)置,也就是為系統(tǒng)設(shè)置了以下幾種用戶(見表1)。

表1 

用戶名

密碼

用戶權(quán)限

Administrator

Wonderware

9999

Manager

abc

8888

Operator

123

2000

第二步,新建一個(gè)名為用戶的Access數(shù)據(jù)庫,數(shù)據(jù)庫里新建一個(gè)名為table1的表(如圖4所示),并在系統(tǒng)的ODBC數(shù)據(jù)源里將這個(gè)數(shù)據(jù)庫綁定。

 
圖4  table1表圖

第三步,在InTouch的SQL Access Manager\Table Template中定義一個(gè)名字和字段都跟table1一樣的表;然后在InTouch的SQL Access Manager\Bind List中為這張表定義一個(gè)綁定列bind1,注意表與綁定列的格式和數(shù)據(jù)類型應(yīng)完全一樣。在這里,綁定的TagName和綁定列名也取為一樣,都是UserName、Password和Privilege。
第四步,分別建立如圖2中的登陸窗口和圖3中的配置用戶窗口,并在窗口中寫入腳本程序。由于篇幅所限,只能以登陸窗口為例,說明登陸腳本程序的編寫。在登陸窗口的確認(rèn)按鈕的Action Script窗口中寫入以下程序。
SQLConnect(ConnectionId, "DSN=用戶");/*連接數(shù)據(jù)庫*/
SQLSelect(ConnectionId,"table1","bind1","UserName='"+OperatorEntered_Temp+"'"+" and "+"Password ='"+ PasswordEntered_Temp+"'","");/*查找匹配的記錄*/
NumRows=SQLNumRows(ConnectionId);/*讀取記錄的條數(shù)*/
IF NumRows>0 THEN
SQLFirst(ConnectionId);/*如果有符合條件的記錄,則讀取記錄*/
SQLEnd(ConnectionId);/*釋放記錄緩沖區(qū)*/
SQLDisconnect(ConnectionId);/*關(guān)閉數(shù)據(jù)庫*/
IF Privilege=="Manager" THEN /*以下8行到20行語句功能為:檢查記錄的Privilege字段值是Manager、Administrator和Manager中的哪一個(gè),并以相應(yīng)的身份來登陸系統(tǒng)*/
$OperatorEntered ="Manager";
$PasswordEntered="abc";
ENDIF;
IF Privilege=="Administrator" THEN
$OperatorEntered ="Administrator";
$PasswordEntered="Wonderware";
ENDIF;
IF Privilege=="Operator" THEN
$OperatorEntered ="Operator";
$PasswordEntered="123";
ENDIF;
ENDIF;
IF NumRows =0 THEN /*如果沒有符合條件的記錄*/
$OperatorEntered ="None";/*以None身份來登陸*/
ENDIF;
程序中的OperatorEntered_Temp和Password-
Entered_Temp變量分別對應(yīng)登陸窗口中輸入用戶名和密碼的兩個(gè)TextBox的TagName屬性。
4  結(jié)語
用這種新方法實(shí)現(xiàn)安全功能,可以有效的克服傳統(tǒng)方法中的弊端,而且在安全性、靈活性和實(shí)用性方面都有所提高。

參考文獻(xiàn):
[1]  WonderWare FactorySuite InTouch User’s Guide. WonderWare Corporation, Revision C, July 1999.
[2]  WonderWare FactorySuite SQL Access Manager User’s Guide. WonderWare Corporation, Revision B, July 1999.

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 成人网久久| 国产精品欧美亚洲韩国日本99| 日韩免费不卡视频| 亚洲qingse| 国产又黄又爽又色视频免费观看 | 亚洲精品久中文字幕| 欧美草逼| 黑人激情视频| 青青青国产依人在在线观看高| chinese在线| 亚洲人成在线影院| 欧美精品99毛片免费高清观看| 精品欧美一区二区精品久久 | 一级成人a免费视频| 色琪琪原网站亚洲香蕉| 草逼社区| 黑人和黑人激情一级毛片| 国产免费色视频| 亚洲成人综合视频| 久久99精品久久久久久黑人| 亚洲在线免费| 在线免费看黄| 欧美限制级在线| 国产成人在线观看网站| 国产乱码一区二区三区四| 快射视频网| 亚洲一区高清| 91射射射| 日韩a级毛片免费观看| 直接看的毛片| 国内在线网友露脸自拍| 国产在线一区二区三区欧美| 国产精品美女在线观看| 美乳在线播放| 黄色91| 国产午夜视频| 精品日韩欧美一区二区三区 | 国产精品思瑞在线观看| 日本强不卡在线观看| 偷自拍第一页| 婷婷 综合网站|