




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
引項目簡種"云"中心、"云"節(jié)點,解決數(shù)據(jù)的本地、網(wǎng)絡傳輸、認證、數(shù)據(jù)完整項目需網(wǎng)點相完成點與點之間數(shù)據(jù)加密、消息加密(網(wǎng)點生命周期的管理)總行要驗證分行的鑒別密鑰相(密鑰的生命周期管理)密鑰管理實時分發(fā)、、校驗、服易用性(第信息系統(tǒng)和安全傳輸平臺解耦合保證修改的最少(第信息系統(tǒng)應該和我們的平臺有效的解耦合)不業(yè)的特殊性需求加密強度(加密實時性安全相關基礎知Y=ax+b特點:加密密鑰 密鑰一樣,密鑰分 優(yōu)點:加密密鑰和密鑰不一樣,公鑰和私鑰;公鑰可以公開,密鑰錢是根子,密鑰是金融系統(tǒng)根數(shù)字和數(shù)字是用戶的網(wǎng)絡,里面含有用戶信息、用戶的公鑰EKY是用戶的密鑰載體介質(zhì),里面用戶的私鑰Hash算法:對一批數(shù)據(jù),進行運算案例1:客戶端A和服務器B雙向認AB服務器B識別客戶端A的流程為:A發(fā)送明文信息、對明文的簽名信息、自己的公鑰,將信息打包后,發(fā)送給B;B接受信息后,用A的公同理:客戶端A也可以驗證服務器的項目的要項目課訓練什1)服務框架搭建和業(yè)務流調(diào)試、開子系統(tǒng)的對接聯(lián)合調(diào)項目開發(fā)的經(jīng)歷是人生的一筆項目開發(fā)庫的積 項目課學員注2)部分學員,為實現(xiàn)某一個功能,把相關的知識體系,全復習、學遍;效正確的做法:迭發(fā),先出來一個模型,再說!()!項目開發(fā)管理流參考常見項目開檔項目議,項目經(jīng)理需求和方項目討論會,概要設計(子系統(tǒng)、模塊,數(shù)據(jù)庫、重要的流程圖)和詳測試(單元測試、對接安全傳輸平臺需求分需求轉(zhuǎn)化方案的思用戶的需求是什項目需求分網(wǎng)點相(網(wǎng)點生命周期的管理)總行要驗證分行的鑒別密鑰相(密鑰的生命周期管理)密鑰管理實時分發(fā)、、校驗、服易用性(第信息系統(tǒng)和安全傳輸平臺解耦合保證修改的最少(第信息系統(tǒng)應該和我們的平臺有效的解耦合)不業(yè)的特殊性需求加密強度(加密實時性方案功能分方案演演示基礎組件:報文編碼組件、安全通信組件、數(shù)據(jù)庫統(tǒng)一接口組件演示linux:secmngserver和secmng演示 應用:外聯(lián)接安全傳輸平臺總體設方案特兼容性:兼容各種硬件平臺、軟件平臺、設備方案架方案原第應用app,通過外聯(lián)接口加密、數(shù)據(jù)linuxwin平臺應用程序。密鑰協(xié)商客戶密鑰密鑰協(xié)商客戶密鑰協(xié)商客戶密鑰協(xié)商服務外聯(lián)應外聯(lián)應外聯(lián)接密鑰同步服務方案模塊關外聯(lián)接口外聯(lián)接口外聯(lián)接口統(tǒng)一安全統(tǒng)一安全通訊接 統(tǒng)一報文編 接 統(tǒng)一數(shù)據(jù) 接接密鑰更密鑰協(xié)商網(wǎng)點(子點密鑰申密鑰校密鑰協(xié)商請求模密鑰協(xié)商服務器(總點密鑰協(xié) 業(yè)密鑰協(xié)商服務模密鑰協(xié)商網(wǎng)點管操使用外聯(lián)接主流廠商硬 接各種國家安全規(guī)范標準CSP各種國家安全規(guī)范標準CSP主主流安全硬件廠商方案子系方案子系組件libicdbapi封裝procoracle數(shù)據(jù)3linux接口的封裝SocketApiLinuxWinsocketwinlinuxwinlinux接口的封裝12winlinux3winlinuxxmljsonhtmlDER接口的封裝統(tǒng)一共享內(nèi)存讀12winlinuxIPC(共享內(nèi)存、消接口的封裝密鑰協(xié)商服務程SecMngServer1linux23linuxLinux服務程密鑰協(xié)商客戶端 1linux2Win34linuxwinLinux信息系Win信息系密鑰協(xié)商服務配置管理終端1MFC2各種win3winlinux4winodbcWin信息系外聯(lián)接1接口設計與對稱密鑰加1使用第安全傳輸平臺數(shù)1sql2oracle3安全傳輸平臺sql的實信息系統(tǒng)數(shù)據(jù)庫解決方案SecMngServer總體流密鑰協(xié)商客戶密密鑰協(xié)商客戶密鑰協(xié)商服務數(shù)據(jù)寫數(shù)據(jù)Admin添加管網(wǎng)點信服務器共享內(nèi)客戶端享內(nèi)寫服務器共享存外聯(lián)應外聯(lián)應客戶端外接發(fā)起密鑰協(xié)商求讀配啟動業(yè)務服務讀數(shù)據(jù)庫啟讀配共享內(nèi)外聯(lián)接外聯(lián)應<流程名稱SecMngServerAdmin,添加網(wǎng)點信息,配置啟動密鑰協(xié)商服務器(SecMngServer)服務程(SecMngClinet (AppInterface,平臺總流程平臺總流程外聯(lián)應外聯(lián)接共享內(nèi)密鑰協(xié)商客戶密鑰協(xié)商服務數(shù)據(jù)配置終寫配置信寫網(wǎng)點信服務器享內(nèi)客戶端享內(nèi)寫共享內(nèi)外聯(lián)接服務外聯(lián)接客戶響應連接寫享內(nèi)開端口氣啟服務讀配置文讀配置文發(fā)起密鑰請安全傳輸平安全傳輸平臺總業(yè)務外聯(lián)應外聯(lián)接共享內(nèi)密鑰協(xié)商客戶密鑰協(xié)商服務數(shù)據(jù)密鑰協(xié)商服務器配終寫數(shù)據(jù)配的啟動參寫數(shù)據(jù)配置網(wǎng)點信啟讀配置文啟動服務共享內(nèi)寫服務器端共享內(nèi)發(fā)起密鑰協(xié)請共享內(nèi)總部應外聯(lián)分部應外寫客戶端的享內(nèi)讀配置文啟SecMngServer服客服客服客端應用密鑰協(xié)顯示菜讀配置文啟動業(yè)務線程提服開端口啟服務讀數(shù)據(jù)讀配置文錄入網(wǎng)點信配置服務器參數(shù)據(jù)密鑰協(xié)商服務密鑰協(xié)商客戶共享內(nèi)外聯(lián)接外聯(lián)應<流程名稱 12)框架和業(yè)務流13)配置管理(MFC)1(MFC)1外聯(lián)接 14人+1學員產(chǎn)品成編號名稱平臺描 其軟件CommMsgEncodeDecode(linuxwin)共享內(nèi)存(win 安全傳輸平臺實報文編組件設計與實常見報文類超文本傳輸協(xié)超文本傳輸協(xié)議(HTTP,HyperTextTransferProtocol)是互聯(lián)網(wǎng)上應用最為廣目的是為了提供一種發(fā)布和接收HTML頁面的方法1960年人TedNelson構(gòu)了HTTP超文本傳輸協(xié)議標準架構(gòu)的發(fā)展根基。TedNelson組織協(xié)調(diào)網(wǎng)HTTP1.1RequestHTTP(請求)注:請求行和標題必須以<CR><LF>作為結(jié)尾(也就是,回車然后換行??招袃?nèi)必須只有<CR><LF>HTTP/1.1協(xié)議中,所有的請求頭,除Host外,都是可選的。GET/User-Agent:Mozilla/5.0(Windows;U;WindowsNT6.0;en-US;rv:0) Accept-Language:en-us,en;q=0.5Keep-Alive:300If-Modified-SinceMon,25May200903:19:18GMTResponse格式:HTTPHTTP/1.1200Cache-Control:private,max-age=30Content-Encoding:gzipExpires:Mon,25May200903:20:33Last-Modified:Mon,25May200903:20:03GMTVary:Accept-Encoding -X-Powered-By:ASP.NETDate:Mon,25May200903:20:02-消息體的內(nèi)容(略文本標記語言,即HTML(HypertextMarkupLanguage),是用于描述網(wǎng)頁HTML,HTML.htm.htmlTXTHTMLHTMLHTMLHTML23<title>namegoesVisibletextgoes<a /">Thisisa<ahref="http /"><imgsrc="URL"alt="AlternateText"></a><ahref="mailto:web ">Sende-mail</a>Anamed<aname="tips">UsefulTips<ahref="#tips">JumptotheUsefulTipsLanguageHTMLHTML頁面的方法。1960年人TedNelson構(gòu)思了一種通過計算機處理TedNelsonRFC2616HTTP1.1網(wǎng)(WorldWideWebConsortium)總結(jié):HTML是超文本標記語言,HTTP是協(xié)議,HTMLHTTPXML報精簡而來的一種通用標注語言,主要是要簡化SGML煩雜的結(jié)構(gòu),強化HTML過XML技術(shù)的推動者之一,它希望能夠建立一WWW廣泛使用語言環(huán)境,推動程序的兼容與協(xié)同,從而降低成本,XML創(chuàng)立之初只是被當作一項基礎技術(shù),但其發(fā)展早已超出設計者原先的XML現(xiàn)在已經(jīng)成現(xiàn)有的XML主要應用在四個方面:一是應用于具有不同復雜格式的不同數(shù)據(jù)源需求選擇和制作不同的應用程序以處理數(shù)據(jù),而服務器只需發(fā)出同一個XML文件;三是應用于將同一數(shù)據(jù)以不同的形式表現(xiàn)出來;四是應用于網(wǎng)絡對所取事實上,XML技術(shù)的潛能還遠未被充分挖掘據(jù)一份的研究以XML為5102008年達到116億的營業(yè)規(guī)模。以XML和Web服務為主的研究公司ZapThink在研究報告中也,這些以XML為基礎并包括Web服務的工具,是將舊有系統(tǒng)再處理器、XSLFO處理器、數(shù)據(jù)庫接受XML——不只如此,還有網(wǎng)絡瀏覽器也接受XMLXML工作小組創(chuàng)始會員C.M.Sperberg-McQueen如是認為也正因為如此,IBM、微軟、SUN、惠普、Oracle等大公司紛紛進入這個市場。的軟件產(chǎn)品中充分利用了XML技術(shù)以程序關聯(lián)為特色的Office2003更是將XML<!DOCTYPEproject<!ENTITYCommonSYSTEMBouncyCastleBuildConfiguration(midp)ThisistheJDK1.1specificbuildfile.$RCSfile:jdk11.xml,v$Author:bouncy$Date:2005/07/0613:02:52$Revision:<projectname="jdk11"default="init"<!--Publiccallabletargets--<targetname="clean"depends="common-clean"<targetname="dist"depends="common-dist"<targetname="compile" pile"<!--includecommontargets,properties--<!--**Privateproperties-- patibility"<includename="java/**" <includename="org/**"<includename="javax/**"<includename="org/bouncycastle/crypto/**"<includename="org/bouncycastle/util/**"<includename="org/bouncycastle/asn1/**"<includename="org/bouncycastle/jce/**" <exclude<!--tomakethefrigginthingcompile--<property piler"value="classic"<path<pathelementlocation="${bcp}"<target pile" pile"<!--extratargetsusedinthisfile--<target pile"<echo patibility" patibility"<classpathrefid="compile.cp"<echomessage="orgbc.lw-source"<javacsrcdir="${master.src}"<classpathrefid="compile.cp"<target pile"if="is.jce"<!--cheatabitheretoremoveduplication--<antcall <paramname="is.lw"value="true"<!--nowdotheextrabitsfortheJCE--<echomessage="orgbc.jce-source"<javacsrcdir="${master.src}"<classpathrefid="compile.cp"<echo patibility" patibility"<classpathrefid="compile.cp"JSON,JavaScriptObjectNotationJavaScriptECMA-2623rdEdition-December1999要用于用于跟服務器進行交換數(shù)據(jù)。跟XML相類似,它獨立于語言,在跨平臺數(shù)上面是百科的解釋,可以說明json大概的意思和作用,json其實就是鍵值對存vara={"one":"一","two":"二","three":"三"},a就是一個json,a.one的varb={"A":"[1,2,3,4,5,6,7]","B":"[a,b,c,d,e]"},b.A[0]json下標,json取鍵值對的名,使用起來很方便,數(shù)據(jù)格式簡潔自定struct{charname[32];intage;chardesc[1024]char*p//32} ASN.1抽象語法標記(SyntaxNotationOne)ASN.1ISO/ITU-ASN.1是描述在網(wǎng)絡上傳輸信息格式的標準方法。它有兩部分:一部分描述來是作為X.409的一部分而開發(fā)的后來才自己獨立成為一個標準ASN.1在OSIISO8824/ITUX.208(說明語法)ISO8825/ITUX.209(說明基本編碼規(guī)則)Report::=SEQUENCEauthorOCTETSTRING,titleOCTETSTRING,bodyOCTETSTRING,biblio}在這個例子中,"eportQE表示消CTGASN.1語法表示它的意義:Bibliography::=SEQUENCE{authorOCTETSTRINGtitleOCTETSTRINGpublisherOCTETSTRINGyearOCTETSTRING}ASN.1布爾型整型實型位串類型8(OCTET枚舉類型空類型對象標識符(OBJECT除基本類型,ASN.1SEQUENCESEQUENCEOF:CCCASN.1編碼typedefstruct{typedefstruct{charname[64];intage;charintintintmywritefile(unsignedchar*buf,int{FILE*fp=if(fp==NULL){printf("fopenfileerror\n");return-1;}fwrite(buf,1,len,fp);return}intTeacherEncode(Teacher*pStuct,unsignedchar**out,int{}intTeacherDecode(unsignedchar*inData,intinLen,Teacher{報文編碼組件設計與實重點:深入理解,報文編碼組件和業(yè)務流模塊的解耦統(tǒng)一報文編碼設計思統(tǒng)一報文編碼實APIAPI(keymng_msg.c編碼實現(xiàn)統(tǒng)一報文組件的業(yè)務流/linux#ifndef#define#ifdefcplusplusextern"C"{#ifndef#define#ifdefcplusplusextern"C"{typedefstruct{//1//2密鑰校驗//3Id[12];// serverId[12];//I編號 typedef { Id[12];//1//12//23//3; unsignedchar pstruct ;(指向相應結(jié)構(gòu)體的指針type: 輸入的類型標識(函數(shù)內(nèi)部通過type得到pstruct所指向的報文poutData:輸出的編碼后的報文;outlen: int *pStruct, unsignedchar **outData,/*out*/ *outLen); :輸入的編碼后的數(shù)據(jù); :輸入的數(shù)據(jù)長度;pstruct:輸出的 :結(jié)構(gòu)的類型標識(flag進行判斷,pstruct轉(zhuǎn)換為相應的結(jié)構(gòu))intunsignedchar*inData,/*in*/ **pStruct *typeMsgEncodeoutData;方法:MsgMem((void**)outData,0);釋放MsgDecode()函數(shù)中的pstruct結(jié)構(gòu)體,MsgMem((void**)outData,type:輸入?yún)?shù),便于函數(shù)判斷調(diào)用哪個結(jié)構(gòu)體 函int (void**point,int#ifdef}}統(tǒng)一報文編碼樣統(tǒng)一通訊組件設計與實統(tǒng)一通訊組件接口設Winlinux異構(gòu)、跨平臺連接的處理(短、長連接)解決的問題:穩(wěn)定、易用;長連接短,socket連接池;斷鏈修復;跨平臺;linux內(nèi)核的角度,理解三次握手和四次斷開(全雙工主動套接字和套接字,accept的函長連接和短實現(xiàn)的條5)socket連接池的設計理念統(tǒng)一通訊組件接口實#ifndef_poolsocket_H_#ifdefextern{#define0#define#define#define#defineSck_ErrPeerClosed #defineSck_ErrMalloc #define 創(chuàng)建連接池(沒有達到最大連接數(shù)#defineSck_Err_Pool_terminated (Sck_BaseErr+21)//已終止#defineSck_Err_Pool_GetConn_ValidIsZero (Sck_BaseErr+22)//有效連接數(shù)是#defineSck_Err_Pool_HaveExist (Sck_BaseErr+22)//連接已經(jīng)在池#defineSck_Err_Pool_ValidBounds (Sck_BaseErr+22)//有效連接數(shù)目//int //int _connect(char*ip,itport,itconne ,it//int _closeconn(int//int //int _rev(intconnfd,intrevtime,unsignedchar**out,int*outlen);//int Mem(void//inttypedefstruct { intserverport;intbounds池容量intconnecttime;intsendtime;intrevtime; //socketintsckCltPool_init(void**handle, //socketintsckCltPool_getConnet(void*handle,int//socketintsckCltPool_send(void*handle, unsignedchar*data,int//socket connfd,unsignedchar**out,int*outlen);////socketsocketintsckCltPool_putConnet(void*handleintconnfdintvalidFlag);0//socketintsckServer_init(intport,intintsckServer_accept(intlistenfd,inttimeout,intintsckServer_send(intconnfd,inttimeout,unsignedchar*data,intintsckServer_rev(int connfd,inttimeout,unsignedchar**out,int*outlen);//1intsckServer_close(intconnfd);int#ifdef}共享內(nèi)存操作組件設計與實共享內(nèi)存基本基本操查看共享內(nèi)操作共享內(nèi)[it01@localhost~]$ :選項需要一個參數(shù)--m :illegaloption--?usage: [[-qmsqid][-mshmid][-s[-Qmsgkey][-Mshmkey][-Ssemkey]...Linux共享內(nèi)存組件設計與實//#ifndef_WBM_MY_SHM_H_#define_WBM_MY_SHM_H_#include<stdio.h>#include<stdlib.h>#include#ifdefcplusplusextern"C"{0////intIPC_CreatShm(intkey,intshmsize,int//intIPC_OpenShm(intkey,intshmsize,int 創(chuàng)建共享內(nèi)存通 文 [out]共享內(nèi)存的句柄.返回值 返回0函數(shù)執(zhí)行成功;非0返回錯誤intIPC_CreatShmBySeedName(char*shmname,intshmsize,int*shmhdl); mapaddrout]返回值 返回0函數(shù)執(zhí)行成功;非0返回錯誤intIPC_MapShm(intshmhdl,void**mapaddr); [in]共享內(nèi)存首地返回值 返回0函數(shù)執(zhí)行成功;非0返回錯誤intIPC_UnMapShm(void*unmapaddr); 返回值 返回0函數(shù)執(zhí)行成功;非0返回錯誤intIPC_DelShm(intshmhdl);#ifdef}服務器框架設計與實 11初始化22顯示菜單:11初始化22顯示菜單:密鑰協(xié)商發(fā)送報文:接受應答:密鑰校驗:密鑰注銷組織報編碼報發(fā)送報接受報寫共享內(nèi)客戶端和服務器密鑰協(xié)商//客戶端和服務器密鑰密鑰校驗流////客戶端和服務器密鑰注銷 設計SecMng集成報文編組SecMng集成通訊組SecMng集成共享內(nèi)存組 集成日志組////1 keymngserver創(chuàng)建服務器端共享內(nèi)存,keymngserver創(chuàng)建共享內(nèi)存根據(jù)最大網(wǎng)點 外聯(lián)接口做業(yè)務時,需要通過keymng 和keymngserver重新協(xié)商密鑰后,再做業(yè)//2 重新啟動系統(tǒng),則共享內(nèi)存 管理員手工刪除共享內(nèi)存(軟件運行中,不能刪除共享內(nèi)存,否則外聯(lián)接口異常//3 //4//{unsignedchar *recvbuf=NULL; recvbuflen=0; ret=reqMsg=reqMsgType=//unsigned sendBuf= sendBufLen=KeyMng_Log(FILE,LINE,KeyMngLevel[2],ret,"functhread_routine()begin");connfd=*((int*)arg); //64bit8{recvbuf=NULL;recvbuflen=0;reqMsg=reqMsgType=//sendBuf=sendBufLen=//ret=sckServer_rev(connfd,3,&recvbuf,if(ret=={KeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,",funcsckServer_rev()err,對方已關閉");}elseif(ret=={//KeyMng_Log(FILE,sckServer_rev()err,timeout超時");
LINE,KeyMngLevel[4],ret,"業(yè)務線程中,}elseif(ret!={KeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,",funcsckServer_rev()err,接受報文失敗");}ret=MsgDecode(recvbuf,recvbuflen,&reqMsg,&reqMsgType);if(ret!=0){ Mem((voidKeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,"funcMsgDecode()}//4處理請求根據(jù)業(yè)務類型組織應答報文ret=KeyMng_OpReal(reqMsg,reqMsgType,&sendBuf,&sendBufLen);if(ret!=0){ Mem((void ((void**)&reqMsg,KeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,"funcMsgDecode()}//5ret=sckServer_send(connfd,3,sendBuf,sendBufLen);if(ret!=0){
Mem((void ((void**)&reqMsg,KeyMng_Log(FILE,LINE,KeyMngLevel[4],ret,"func} Mem((voidMsgMem((void**)&reqMsg,}KeyMng_Log(FILE,LINE,KeyMngLevel[2],ret,"functhread_routine()end");}SecMngServer設計11讀配置文件2讀配置文件3讀數(shù)據(jù)庫4顯示菜單5:開端口啟動服務 接,啟動6業(yè)務線程做業(yè)務處理密鑰協(xié)組織報發(fā)送:接受報 報文寫共享內(nèi)存密1234567商//1組織報//2編碼報//3發(fā)送報//4接受報構(gòu)//6寫共享內(nèi)
務線程應解析報文根據(jù)命令碼123,做具體的業(yè)務給客戶端應答報組織應答結(jié)構(gòu)回復報SecMngServer集成通信SecMngServer集成共享內(nèi)存組SecMngServer集成數(shù)據(jù)庫組 SecMngServer對接調(diào)1密鑰DER報文編碼錯 gdb調(diào)試2密鑰器端寫oracle數(shù)據(jù)庫錯gdb調(diào)試數(shù)據(jù)傳輸庫設oracle數(shù)據(jù)庫使用常見問oracleoracle在linux環(huán)境中,用sqlplus工具oracle服在oracle用戶下,用sqlplusoracle服務在非oracle用戶下,用sqlplusoracle服務scott/aaod777/home/oracle_11/app–R同時配置在win環(huán)境中,用sqlplus工具linux環(huán)境下的oracle服1 net52 //linux服務器1521端口放3兩個配置文件2)listener.ora數(shù)據(jù)傳輸參考數(shù)據(jù)庫統(tǒng)一數(shù)據(jù)接口組件設計與實數(shù)據(jù)庫接口設計思基于連接池的數(shù)據(jù)庫方數(shù)據(jù)庫接口實#ifndef#ifndef#define#ifdefcplusplusextern"C"{#ifndef#ifndef#ifndef#defineICDBLob#define#defineICDBCLOB012#define#ifndeftypedefstruct{ #ifndeftypedefstruct{ICDBField* //externintIC_DB_DTUseLevel[5];externintDTORADBLevel[5];/*/*/* intIC_DBApi_PoolInit(intbounds,char*dbName,char*dbUser,char*/*/*/* sTimeout超時時間(秒nsTimeout超時時間(毫秒intIC_DBApi_ConnGet(ICDBHandle*handle,intsTimeout,int/*/*/* 數(shù)據(jù)庫連接有效 intIC_DBApi_Conn (ICDBHandlehandle,intvalidFlag);/*/*/*intIC_DBApi_Pool /*程序名 /*功能描述:執(zhí)行單個非select數(shù)據(jù)庫語句(不包含事務/* SelSql(ICDBHandlehandle,char*sql);/*/*select數(shù)據(jù)庫語句(包含事務/* 數(shù)據(jù)庫語句(NULL結(jié)束 SelSqls(ICDBHandlehandle,char*sqls[]);/*/*/* intIC_DBApi_BeginTran(ICDBHandlehandle);/*/*/* intIC_DBApi_Rollback(ICDBHandlehandle);/*/*/* mit(ICDBHandlehandle);/*/*select數(shù)據(jù)庫語句(返回單條記錄/* intIC_DBApi_ExecSelSql(ICDBHandlehandle,char*sql,ICDBRow*row);/*/*select數(shù)據(jù)庫語句(返回多條記錄/* intIC_DBApi_ExecSelSqlMR(ICDBHandlehandle,char*sql,intbeginNo,intcount,ICDBRow*rows,int*/*/*/* fieldCount intIC_DBApi_OpenCursor(ICDBHandlehandle,char*sql,intfieldCount,ICDBCursor*/*/*/* /*/*/* intIC_DBApi_CloseCursor(ICDBHandlehandle,ICDBCursor*pCursor);/*/*PEMDER/* PEMpemDataLenPEM DERderDataLenDERintIC_DBApi_Pem2Der(char*pemData,intpemDataLen,unsignedchar*derData,int*/*/*PEMDER/* DERderDataLenDER PEMpemDataLenPEMintIC_DBApi_Der2Pem(unsignedchar*derData,intderDataLen,char*pemData,int*/*程序名 /*功能描述 獲取數(shù)據(jù)庫時 /*參數(shù)說明 數(shù)據(jù)庫連接句 數(shù)據(jù)庫時 intIC_DBApi_GetDBTime(ICDBHandlehandle,char*dbTime);#define#define0#define#define//SQLDA#define//SQLDA#define//#define//#define//#define//#define//#define誤//#define//#define-//#define-與數(shù)據(jù)庫的連#ifdef}客戶端框架MFC設計與實主框架搭OutlookOICQ視圖的AppWizard生成單文檔單視圖的應添加外部文件GFXGROUPEDIT.CPPGFXGROUPEDIT.HGFXOUTBARCTRL.CPPGFXOUTBARCTRL.HGFXPOPUP.CPPGFXPOPUPgfxPub.h,GFXSPLITTERWND.CPPGFXSPLITTERWND.H 3IDIDC_HANDLECUR、IDC_DRAGGING和IDC_NODRAGGING在resource.h中添加控件消息#defineID_GFX_SMALLICON #define #define #define #define #define #define //DWORDdwVersion//DWORDdwVersion=::GetVersion();DWORDdwVersion=4;BOOLbWin4=(BYTE)dwVersion>=2013\projects\mysecadmin_1\mysecadmin_1\gfxsplitterwnd.cpp2013\projects\mysecadmin_1\mysecadmin_1\gfxsplitterwnd.cpp45s\visual錯 errorC4996:'GetVersion': ine=bNotWin4=1- //form_upBorder=找不到資源視圖在CMainFrame中添加視圖切分功能a)在MainFrm.h中,包含相應頭文件,添加對象變量定義添加#include"GfxSplitterWnd.h"#include"GfxOutBarCtrl.h"特//201507 imaLarge, 添加重載 函BOOLCMainFrame::OnCreate(LPCREATESTRUCTlpcs,CCreateContext*使用類向?qū)Ш瘮?shù)重寫如下定定義放在staticUINTnImages[]{函數(shù)之下面是虛函數(shù)重BOOLCMainFrame::OnCreate{(LPCREATESTRUCTlpcs,//TODO:在此添 代碼和/或調(diào)用基if(!wndSplitter.CreateStatic(this,1,2))returnif(!wndSplitter.CreateView(0,CSize(0,0),return//pContext->m_pNewViewClassRUNTIME_CLASS(CFormUserManager)DWORDdwf=CGfxOutBarCtrl::fDragItems|wndBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),&wndSplitter,wndSplitter.IdFromRowCol(0,0),dwf);imaLarge.Create(32,32,true,2,1);HICONhIcon;for(inti=0;i<7;{hIcon=AfxGetApp()->LoadIcon(nImages[i]);imaLarge.Add(hIcon);}wndBar.SetImageList(&imaLarge,CGfxOutBarCtrl::fLargeIcon);wndBar.SetImageList(&imaSmall,CRect(0,0,0,0),&wndBar,1010);wndTree.SetImageList(&imaSmall,TVSIL_NORMAL);wndBar.AddFolder("SecMngServer配置管理",wndBar.AddFolder("SecMngAdmin網(wǎng)點管理",wndBar.AddFolder("人員管理",wndBar.AddFolder("設備管理",//wndBar.AddFolder("CA人員操作查詢",wndBar.InsertItem(0,0"SecMngServer配置0,wndBar.InsertItem(0,1網(wǎng)點信息管理1,wndBar.InsertItem(0,2 業(yè)務管理4,0);wndBar.InsertItem(0,3 查詢5,0);"前臺體系管理"前臺業(yè)務管理"前臺查詢"創(chuàng)建人員"凍結(jié)人員"解凍2"注銷人員"創(chuàng)建設備"注銷管理CRect intw1=r.Width()/5;intw2=wndSplitter.SetColumnInfo(0,CRect intw1=r.Width()/5;intw2=wndSplitter.SetColumnInfo(0,w1,0wndSplitter.SetColumnInfo(1,w2,0);return//return(lpcs,} 下,引入ico文user.ico導入到項目中,在資源試圖中,做屬性配添加CFormBackground創(chuàng)建Dialog資源IDD_FORMBACKGROUND_FORM,并為其創(chuàng)建資源類CFormBackground,voidCFormBackground::OnDraw(CDC*在CFormBackground類重voidCFormBackground::OnDraw(CDC*{//TODO:在此添 代碼和/或調(diào)用基 for(intk13;k<18;k++)繪圖示例—顯示位{CBrush*pTempBrush=NULL;CBrushOrigBrush;CRect {CBitmapbmp;CBrushbrush(&bmp);pTempBrush=(CBrush*)pDC-pDC->Rectangle(rc.left,rc.top,rc.Width(),rc.Height());}catch(CResourceException*{}}CRect CRectrect2; CFontfontfont.CreatePointFont(340,CStringstring歡迎使用KeyMngServer管理終端rect.OffsetRect(6,rect.OffsetRect(6,90pDC->SetTextColor(RGB(192,192,pDC->DrawText(string,&rect,rect2.OffsetRect(0,-pDC->SetTextColor(RGB(0,0,pDC->DrawText(string,&rect2,}注意1:父類.classCFormBackgroundpublic注意2:CFormBackground類資源的屬Style屬性配置成注意3:在MainFrom頭文件中添加#include視圖的CMainFrame類中添加視圖切換自定義消息MainFrame.h中添加自定義消息…afx_msglong ram,LPARAMMainFrame.cppBEGIN_MESSAGE_MAP(CMainFrame,…ON_MESSAGE(WM_OUTBAR_NOTIFY,long{long{switch {case//castthelParamtoanintegertogettheclicked{intindex=(int)lParam;CStringcText,cs1; { CCfgView*pNewView=(CCfgView*)wndSplitter.GetPane(0,1);}{Context.m_pCurrentFrame=this; stView=(CViewCDlgNetInfo*pNewView=(CDlgNetInfo*)wndSplitter.GetPane(0,1);}elseif 業(yè)務管理{}}return
Context.m_pNewViewClass=RUNTIME_CLASS(CSysAll);Context.m_pCurrentFrame=this; CSysAll*pNewView=(CSysAll*)wndSplitter.GetPane(0,1);case//castthelParamtoanOUTBAR_INFO*struct;itwillcontaininfoabouttheedited//return1todothechangeand0tocancel{if(IsLoginOutFlag=={AfxMessageBox("CA人員以進行相應操作。");return1;}OUTBAR_INFO*pOI=(OUTBAR_INFO*)TRACE2("Editingitem%d,newtext:%s\n",pOI->index,pOI-}returncase//castthelParamtoanOUTBAR_INFO*struct;itwillcontaininfoabouttheedited//return1todothechangeand0tocancel{{if(IsLoginOutFlag=={return1;}OUTBAR_INFO*pOI=(OUTBAR_INFO*)TRACE2("Editingfolder%d,newtext:%s\n",pOI->index,pOI-}returncase//castthelParamtoanOUTBAR_INFO*struct;itwillcontaininfoaboutthedragged//return1todothechangeand0tocancel{if(IsLoginOutFlag=={return1;OUTBAR_INFO*pOI=(OUTBAR_INFO*)TRACE2("Dragitem%datposition%d\n",pOI->iDragFrom,pOI-}return}return}1>e:\01_work\23_項目\secmng\secmng\mainfrm.cpp(334errorC2653:“CCfgView”:不是類1>e:\01_work\23_項目\secmng\secmng\mainfrm.cpp(338errorC2653:“CCfgView”:不是類1>e:\01_work\23_項目\secmng\secmng\mainfrm.cpp(339errorC2065:“CCfgView”:未1>e:\01_work\23_項目\secmng\secmng\mainfrm.cpp(339errorC2065:“pNewView”:未聲CCfgViewDialog資源(id可以命名:IDD_DIALOG_CFG)CSysAllDialog資源(id可以命名:IDD_DIALOG_SYSALL)CCfgViewCCfgViewOnInitialUpdate多頁創(chuàng)多頁在項目開發(fā)中,是一個經(jīng)典界面。樣例如下創(chuàng)建框資源、創(chuàng)建創(chuàng)建視圖類CSysAll,關聯(lián)的框資源為創(chuàng)建視圖類CDlgTab1,CDlgTab2CDlgTab3分別關聯(lián)資源IDD_DIALOG_TAB1CSysAllCSysALLOnInitialUpdate()方法void{//TODO:在此添加代碼和/或調(diào)用基}在CSysAll類中添加頁成員變量,包含相應頭文 //CTabCtrlm_myTabCSysAllCTabSheetCSysAll//CTabCtrlm_myTab;CTabSheetm_myTab;CTabSheet的.h.cpp文件源碼添加到項目文件中CSysAllWM_PAINT消息void{CPaintDCdc(this);//devicecontextforCRectrect,this->Getif((rect1.Width()<rect.Width())TODO://}SecMngAdmin初始Admin若配置文件存在,則參若配置文件不存在,則彈出框讓用戶錄入配置信SecMngAdmin配置參odbc連接和關閉數(shù)據(jù)}}returnint{//CDatabase strCon.Format("DSN=%s;UID=%s;PWD=%s"g_dbSource,g_dbUseg_dbpw);g_pDB=&myDB;//這樣操作速度快 //{if(!g_pDB->OpenEx(strCon,{AfxMessageBox("創(chuàng)建一條到數(shù)據(jù)源的連接發(fā)生錯誤,請檢查數(shù)據(jù)源配置是否正確!");return-1;}{return-1;}通過odbc驅(qū)動自動生成記錄Odbc打開表查詢和多次查voidvoid{;//{srvCfgSet.m_strFilter.Format("key='%s'",{MessageBox打開ca.smSrvCfg表失??!數(shù)據(jù)庫操作MB_MODEMASK);return;}if{m_strSvrIP=}{}
m_strSvrIP=srvCfgSet.m_strFilter.Format("key='%s'","secmng_server_port");if{}{}
m_strSvrPORT=m_strSvrPORT=//srvCfgSet.m_strFilter.Format("key='%s'","secmng_server_maxnetnum");if{}{}
m_strSvrMaxNode=m_strSvrMaxNode空值UpdateData(FALSE);}{{}}}odbc新增和修改、事//1void{void{ dbtag=;//if{MessageBox"IP地址為空服務器配置錯誤MB_MODEMASK);return;}if{MessageBox端口為空服務器配置錯誤MB_MODEMASK);return;}if{MessageBox最大網(wǎng)點數(shù)為空服務器配置錯誤MB_MODEMASK);return;}CSECMNGSRVCFGsrvCfgSet(g_pDB);{srvCfgSet.m_strFilter.Format("key='%s'",{MessageBox打開ca.smSrvCfg表失?。?shù)據(jù)庫操作MB_MODEMASK);return;}if(!srvCfgSet.IsEOF({}else{srvCfgSet.m_KEY="secmng_server_ip";srvCfgSet.m_VALUDE=m_strSvrIP;}//srvCfgSet.m_strFilter.Format("key='%s'","secmng_server_port");if{}{}
srvCfgSet.m_KEY="secmng_server_port";srvCfgSet.m_VALUDE=m_strSvrPORT;//srvCfgSet.m_strFilter.Format("key='%s'","secmng_server_maxnetnum");if{}{}
srvCfgSet.m_KEY="secmng_server_maxnetnum";srvCfgSet.m_VALUDE=m_strSvrMaxNode;{dbtag={}if(dbtag=={MessageBoxSecMngServer配置信息失敗數(shù)據(jù)庫操作MB_MODEMASK);return;}{();//",}return}SecMngAdmin網(wǎng)點信息管CListCtrl屬性配 report屬CListCtrl控件的初始voidvoid}}//TODO:在此添 代碼和/或調(diào)用基ode.InsertColumn(0,"網(wǎng)點編號",LVCFMT_LEFT,nColInterval);ode.InsertColumn(1,"網(wǎng)點名稱",LVCFMT_LEFT,nColInterval);ode.InsertColumn(3,"網(wǎng)點狀態(tài)",LVCFMT_LEFT,nColInterval); intnColInterval=CRectrect; DWORDdwExStyle=m_imageList.Add(&cBmp,RGB(255,0,CBitmapHIMAGELISThList=ImageList_Create(16,16,ILC_COLOR8|ILC_MASK,8,TODO:{CListCtrl控件中插入簡單數(shù)ode(CStringode(CString&ID,CString&Name,CTime&time,intstate,int{ returnreturn//CStringstrAuthcode(authcode)charsprintf(buf,"%d",authcode);lvi.pszText=buf;//Setsubitemlvi.iSubItem=}else}//Setsubitemlvi.iSubItem=3;if(state==1){lvi.iSubItem=1; //Setsubitem1lvi.pszText=(LPTSTR)(LPCTSTR)Name;strTime=time.Format("%Y-%m-%d%H:%M:%S");lvi.iSubItem=2; //Setsubitem2//Setsubitemlvi.iSubItem= lvi.mask LVIF_IMAGE|lvi.iItem0;//lvi.iImage=}}CListCtl控件中插入數(shù)據(jù)庫數(shù)odbcvoidvoid{dbtag=*myWnd=*But=0,tag0;// 0;//0strFilter // =(CWnd*)GetDlgItem(IDC_CHECK_TIME);But=(CButton*)myWnd;if(But->GetCheck()=={0,0,0);23,59,if(sqlTime1>={MessageBox開始時間不能大于結(jié)束時間!時間查詢MB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新能源汽車制造產(chǎn)業(yè)鏈產(chǎn)業(yè)鏈安全風險防控與應對策略報告
- 文化產(chǎn)業(yè)園產(chǎn)業(yè)集聚與服務體系構(gòu)建中的文化產(chǎn)業(yè)園區(qū)文化產(chǎn)業(yè)發(fā)展戰(zhàn)略研究與實踐報告
- 新零售私域流量運營的社群運營策略研究報告
- 2024年河北省市場監(jiān)督管理局下屬事業(yè)單位真題
- 宣城涇縣鄉(xiāng)村振興發(fā)展有限公司招聘考試真題2024
- 2025年氫能源汽車產(chǎn)業(yè)鏈關鍵環(huán)節(jié)-加氫站建設成本與布局前瞻性研究報告
- 2025年有色金屬資源循環(huán)利用產(chǎn)業(yè)鏈技術(shù)創(chuàng)新與產(chǎn)業(yè)政策報告
- 2025年汽車輕量化材料在汽車輕量化車身制造中的研發(fā)成果轉(zhuǎn)化與推廣策略報告
- 理解西方政治制度的操作性問題試題及答案
- 網(wǎng)絡結(jié)構(gòu)設計中的關鍵考量因素試題及答案
- 2024土地代耕代種協(xié)議書
- 《水電工程巖爆風險評估技術(shù)規(guī)范》(NB-T 10143-2019)
- 預防術(shù)中低體溫Pdca 課件
- 胃癌診療指南(2022年版)
- 醫(yī)院物業(yè)人員交接方案
- 建筑施工行業(yè)應急管理體系建設
- 逆變器技術(shù)規(guī)范書
- 【要填報的表格】園林行政許可申請表-樹木砍伐、移栽、修剪(洪山園林局專用)
- 傳染病管理工作流程圖預防醫(yī)學、衛(wèi)生學
- 特種作業(yè)人員體檢表
- 精益改善周五階段
評論
0/150
提交評論