1.介面封裝
我們新增乙個ssolib類庫專案,提供對應用系統介面**的封裝,從而使其他應用系統通過呼叫該類庫,即可實現接入認證服務中心。ssolib類庫專案如圖18-17所示,詳細**請參考本書配套光碟。
圖18-17 ssoclass類庫專案
l assistant類:輔助工具類。
ldesencrypt類:加密/解密處理類。
lsynpagebase類:(接收認證中心)狀態同步頁面的基類,在應用系統中建立乙個空白頁面繼承該類,即可實現同步功能。
lvalidatepagebase類:當前應用系統驗證頁面的基類。應用系統中的任一頁面通過繼承該類,都可實現對使用者狀態的驗證功能。
2.應用系統呼叫介面開發步驟
下面看一下如何通過呼叫上面封裝過的類庫,來實現接入認證服務中心實現單點登入功能。
(1)在web.config裡設定環境引數:
(2)在global.asax.cs中session_start新增:
protected void session_start(object sender, eventargs e)
this.session.add("userid", 0);
this.session.add("pass", false);
this.session.add("security", "");
this.session.add("url", "");
(3)引用元件ssolib.dll,如圖18-18所示。
圖18-18 引用元件ssolib.dll
(4)使用者身份認證,驗證當前狀態。
將要進行驗證的頁面(anypage)基類由system.web.ui.page改為ssolib.validatepage。
(5)接收認證伺服器的返回資訊進行狀態同步。
在專案中增加乙個空白頁面synchronous.aspx,將頁面基類繼承自ssolib.synpagebase。
(6)更新認證伺服器,保持service認證伺服器session狀態。
新增乙個使用者控制項synserveriframe.ascx實現如下**,並拖到所有的頁面上。
/sessionstate.aspx'>
synserveriframe.ascx.cs**如下:
public partial class synserveriframe : system.web.ui.usercontrol
(7)登出當前應用系統的登入。
session.clear();
session.abandon();
(8)登出所有應用系統的登入。
直接轉向伺服器登出頁面即可:
"/logout.aspx");
通過上面方式的呼叫,應用系統的開發工作量大大減少,幾分鐘就可以實現了。當然,這裡不僅僅是教給大家幾行**,更重要的是一種思想,一種為客戶著想的思想。
本文節選自《專案中的.net》一書
李天平編著
電子工業出版社出版
外部api介面呼叫封裝
簡述 一般我們呼叫外部系統 比如使用httpclilent.post url,param 然後我們會在各種地方使用httpclilent.post url1,param1 httpclilent.post url2,param2 比較好的辦法如下,直接上 下面是乙個簡單的基本封裝模型。請求引數基類 ...
PHP呼叫介面API封裝的例子
參考 curl請求 param url 請求url位址 param method 請求方法 get post param null postfields post資料陣列 param array headers 請求header資訊 param bool false debug 除錯開啟 預設fal...
關於DLL巢狀封裝及呼叫
最近閒來無事想對log4net進行封裝,封裝成靜態函式,呼叫時不需要管配置檔案,不需要進行配置,直接通過靜態函式記錄日誌。將log4net.dll封裝成自己的類庫logtool.dll 但是在呼叫時出現了問題,若是將自己生成的logtool.dll以及log4net.dll同時放在exe同目錄下,呼...