使用delphi 開發多層應用(十)安全訪問伺服器

2021-09-08 02:53:31 字數 1255 閱讀 1981

前面講了如何建立和訪問伺服器,但是前面建的伺服器都沒有安全控制,這裡有很大的安全問題,第一是任何人做乙個客戶端都可以都可以訪問

伺服器。第二是資料在網路傳輸過程中都是明碼的,沒有加密,使用網路偵聽器就可以檢測到傳輸的內容。這是乙個標準的系統不允許的,今天就

講一下如何安全的訪問伺服器.

首先我們需要使用加密來保證資料在網路上傳輸的安全,首先在伺服器端我們加乙個tkbmmwdcp2crypt.這個是kbmmw 對dcp2crypt的封裝,

dcp2crypt 是乙個用pascal 實現的各種加密及校驗的開源庫。kbmmw 使用其來實現網路傳輸過程中的資料加密.

並在tkbmmwtcpipindyservertransport 裡面設定crypt 為kbmmwdcp2crypt1.

另外,我們需要對客戶端的進行認證,這裡是通過使用者名稱及密碼來實現的.在伺服器的認證事件裡面我們加入以下**:

procedure tform1.kbmmwserver1authenticate(sender: tobject;

clientident: tkbmmwclientidentity; var perm: tkbmmwaccesspermissions);

begin

if ((clientident.username='

xalion

') and (clientident.password='

123456

')) then //這裡可以通過使用許可權庫來對客戶端進行認證

begin

perm:=[mwapread,mwapwrite,mwapdelete,mwapexecute,mwapinternalexecute] //對應著伺服器的不同訪問許可權,在這裡可以再細分許可權

end;

end;

同時要設定 kbmmwserver 的earlyauthentication 為true.

伺服器端完成,可以編譯並執行了.

現在來看客戶端,同樣需要先增加乙個tkbmmwdcp2crypt,並設定kbmmwtcpindyclienttransport 的crypt

為kbmmwscp2crypt.

並設定kbmmw******clinet 的使用者名稱和密碼.

編譯和執行,並訪問伺服器.

這樣就實現了安全訪問kbmmw 伺服器.

當然了由於每個kbmmw伺服器會有很多個不同的服務, 可能需要針對不同的服務進行不同的認證,

這個就要在每個服務裡面進行進一步的認證了。這裡就不再羅嗦了.

Delphi多層開發方案比較

方案 midas dcom com asta remoteobject net 提供者 borland 微軟 微軟 http www.remobjects.com 微軟 核心技術 comcom com asta自己的,類同midas,但不依賴於com remobjects自己的webservice技...

Delphi多層開發方案比較

看到別人寫的內容收藏一下,原作者寫的時間可能比較早,因為尚未加入cg的datasnap的多層比較 方案 midas dcom com asta remoteobject net 提供者 borland 微軟微軟 微軟 核心技術 com com comasta自己的,類同midas,但不依賴於com ...

博摘 Delphi多層開發方案比較

摘自 qdyoung 的 blog 方案 midas dcom com asta remoteobject net 提供者 borland 微軟 微軟 http www.remobjects.com 微軟 核心技術 comcom com asta自己的,類同midas,但不依賴於com remobj...