通用許可權管理工具,支所有ADO(包括ODBC)支援的資料庫,不管用什麼編程都行,VC/BCB/VB/PB/Delphi

來源:互聯網
上載者:User
ado|odbc|編程|資料|資料庫
下面是一部分說明:

請細請到這裡下載ExeDemo測試版
通用許可權管理工具的創作動機許可權管理是MIS軟體中很重要的一環。很多國內較出名的MIS軟體廠商都設計了較完善的也具有自己特色的許可權管理模組。但對於很多沒那麼規範的軟體商(包括個人或小創作團體),他們經常是接到一單,設計一套許可權管理系統,每套都不同;有的則不夠重視,隨便寫上一段,哪裡都拷過去用;有的也曾費盡心機,但結果總不能令自己滿意。
其實仔細想一下,每套軟體的許可權雖然各不相同,但其實所需實現的功能是相同的。許可權管理是MIS軟體中可代碼重用性最高的一個模組,也是重複開發率最高的一個模組。
做一個最通用的許可權管理模組,支援儘可能多的資料庫後台,支援儘可能多的前台開發工具,盡最大可能方便軟體工作者設計維護和終端使用者使用,當然,還要保證許可權管理技術的先進性,即注重靈活性的安全性。基於這樣的設想,我參考了多種許可權管理系統後,設計實現了這一個通用許可權管理工具。
我不敢說:減少代碼重用,從我做起。但也希望自己的工作能為大家帶來方便。
希望大家喜歡這個工具。有Bug一定煩勞報告一下,我們一起來完善它!關於通用許可權管理工具支所有ADO(包括ODBC)支援的資料庫,不管用什麼編程都行,VC/BCB/VB/PB/Delphi , 這是吹牛嗎?一點也不!本軟體創作期間即考慮到資料庫相容的問題,重要指令碼絕對符合SQL_92標準。大部份工作後台進行,稍加改動適應也是輕而易舉。
所有購買DLL版的使用者,均贈送SQL指令碼及與Exe版一樣或相似的調用程式碼範例,共以下幾種:
Delphi6.0
C++Builder5.0
VB5.0
PB7.0使用及購買協議本通用許可權管理系統的Exe版免費提供使用者測試使用, 購買Dll版費用為RMB100元整,提供Dll、SQL指令碼和Delphi、BCB、VB、PB調用的原程式樣本. 購買Dll的Delphi6原始碼費用為RMB500元整.不管是免費的, 購買的, 程式、來源程式及SQL指令碼的著作權為作者所有. 使用者購買所得的檔案或代碼、指令碼只限於使用者自己或本單位研發、發布系統使用, 不得免費或有償再次發布、公布. 如不同意以上協議, 作者將不接受購買. 聯絡作者來信/匯款地址:
321409 浙江省縉雲縣大源鎮稠門一村10號 李嶽金收
招商銀行一卡通帳戶:057150424609
首頁地址:http://elsesoft.home.sohu.com
Emailto:llii@163.net
開寅軟體工作室 ©1999-2001
使用者權限管理這就是使用者權限管理的視窗,(如果不用ADO交易處理,下面將沒有"取消"和"儲存"按鈕)
請注意,這裡我為了方便,很多地方都設了1、2、3,其實都可以設為字串型資料,長度在20個位元組以內,應該都夠用了。另外,在添加組名稱後,在組使用權限設定列表下應自動顯示出可設定的許可權項目,如果不是,則說明DBMS不能良好的支援ADO事務,請取消ADO事務後重新進入。

你可以自己選擇先添加使用者還是先添加許可權組,系統均會作完善處理。
一個使用者按照設定不同,有三種狀態,分別是"正常"、"到期"和"禁用",只有處於""正常狀態下的使用者才能對系統登入成功。一個使用者可以設定允許幾個許可權組的許可權,他能在任一個許可權組中允許的許可權項目檢測中通過。
對每一個許可權組,你可以按功通、職責不同選取相應的許可權項目。
組許可權列表中的分組的作用和許可權組的作用是相輔相承的:如果它的子項目全部沒有選擇,它也就沒有選擇,如果其中有一個或多個或全部選擇了,它就被允許。你可以在進入一大模組之前檢測使用者有沒有進入組的許可權,如果有就允許存取,沒有就不必進入了,因為他進去了也無事可做。

請輸入使用者ID、使用者姓名、密碼,及指定是否有效和有效使用到期日。
其中密碼可以為空白,也可以長達幾十個字元。
使用者ID與現有ID重複時將不能添加。

編輯使用者資訊時,不能更改使用者ID,如要更改,請刪除後重新添加。

添加許可權組只要輸入不與現有組名稱重複的就行了。
開寅軟體工作室 ?1999-2001
函式宣告軟體設計者完全掌握許可權管理不需要再絞盡腦汁, 使用通用許可權管理工具DLL版,只需聲明10個函數即可, 若是也讓我沾一下你的光彩, 多聲明一個ShowAbout也才11個。

本許可權管理DLL測試了四種通用MIS開發工具的函數測試,均可使用。
C++Builder、VB、PB請點擊進入相應的頁面查看,VC++我不熟, 但用的人全是高手, 我也就不獻醜了, 照BCB的稍改一下就行。
下面以Delphi的函數調用進行詳細說明。

Delphi(DLL版提供本例本視窗的Delphi6.0和C++Builder5.0介面和代碼)
強烈建議交付使用者使用時更改DLL的名稱以及改聲明DLL的名稱為相應的名稱,以防止某些自以為是的人對其進行亂開發並破壞系統安全。

procedure ShowAbout;stdcall; external 'qxDll.dll';
{這個不用說了吧?}
function ConnectDB(cnStr, user, pwd : PChar;
dt, enpwd : PChar): integer; stdcall; external 'qxDll.dll';
{串連資料庫
參數說明:
cnStr : 就是上面要取得的串連參數
user : 登入資料庫的使用者ID
pwd : 登入資料庫的密碼 
dt : 日期格式為yyyy-MM-dd, 為空白時取電腦日期
enpwd : 密碼加密因子
傳回值 : 
0, 串連成功
1, 串連失敗
}
procedure DisConnectDB;stdcall; external 'qxDll.dll';
{斷開資料庫連接}
procedure EditqxList(tran : integer);stdcall;
{參數說明: 1 : 用交易處理, 0 : 不用交易處理}
{開啟許可權列表維護視窗, 可不用聲明, 因為終端使用者不需要}
procedure qxManager(tran : integer); stdcall; external 'qxDll.dll';
{參數說明: 1 : 用交易處理, 0 : 不用交易處理}
{開啟許可權管理視窗, 這個最重要}
function LoginCheck(userID, pwd, dt, ErrStr : PChar;
sysErr : integer) : integer;stdcall; external 'qxDll.dll';
{使用者登入你的系統
參數說明:
userID : 登入到管理系統的使用者名稱
pwd : 登入到管理系統的密碼
dt : 同上一個函數,主要考慮到有的系統幾天不關機,
好讓軟體知道剛才想登入的使用者到期了沒有
ErrStr : 如果使用者登入失敗, 你想在DLL中顯示自己的資訊時使用,
可以為空白字串
sysErr : 登入失敗處理方式,
0, 由你的程式自己處理
1, 僅顯示ErrStr所提供的資訊
2, 由DLL來顯示出錯資訊 
傳回值 : 
0, 登入成功
1, 使用者被禁止使用
2, 使用者使用到期日已過
3, 密碼不正確
4, 無此使用者
}
function ShowLoginForm(Cap, dt : PChar;
var userID: PChar;var sec : integer) : integer;stdcall;
{用本DLL的登入對話方塊處理使用者登入}
{參數說明:
Cap : 登入對話方塊的標題
dt : 同上一個函數,主要考慮到有的系統幾天不關機,
好讓軟體知道剛才想登入的使用者到期了沒有
userID : 返回剛才登入使用者的userID的緩衝區
sec : 10以上, 按秒計限時登入, 10以下,按次計限次登入.
登入成功時返回userID的長度
傳回值 : 
0, 登入成功
1, 登入限定次數已到
2, 登入限定時間已到
3, 使用者取消
下面分別是兩種限定的登入對話方塊圖示:


}
function ChangUserPwd(userID,oldPwd,newPwd,dt : PChar): integer;stdcall;
{更改使用者密碼
參數說明:
userID : 登入到管理系統的使用者名稱
oldPwd : 原來的密碼
newPwd : 新密碼
dt : 同上
傳回值 : 
0, 更改成功
1, 使用者被禁止使用,所以不能更改
2, 使用者使用到期日已過,所以不能更改
3, 密碼不正確,所以不能更改
4, 無此使用者,所以不能更改
5, 新舊密碼相同,所以不更改
6, 不明原因致使修改不成功}
function ShowChangUserPwdForm(userID,dt : PChar): integer;stdcall;
{用本DLL的登入對話方塊處理密碼更改
參數為使用者ID和日期
傳回值:0 : 成功, 1 : 不成功
下面是使用者改更密碼對話方塊的圖示:

}
function GetUserNameFromID(userID : PChar;
var userName : PChar): integer;stdcall;
{取得相應使用者ID的使用者名稱字
參數說明:
userID : 使用者ID
userName: 返回檢查到的使用者名稱字的緩衝區
傳回值:
0 : 沒有取得這個ID的名字,
其它 : 返回userName的長度}
function UserQxCheck(UserID : PChar; qxID : integer;
ErrStr : PChar; sysErr : integer) : integer; stdcall; external 'qxDll.dll';
{檢查某使用者是否可使用某一功能的許可權
參數說明:
userID : 要檢查許可權的使用者ID
qxID : 要檢查的許可權ID, 注意, 是整數型值
ErrStr : 同上一函數
sysErr : 同上一函數

傳回值 : 
0, 有使用此功能的許可權
1, 沒有使用此功能的許可權


開寅軟體工作室 ©1999-2001

 


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。