日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手把手教你可复用的SSO组件设计(设计篇)

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手教你可复用的SSO组件设计(设计篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

周末陪女朋友去了,沒寫,告罪,上班后急忙補上。

這里說到了可復用得設計,所謂可復用就是指的,引入Dll,改改配置就能使用,而不是打開源代碼東改改西改改再來調試調試最后OK。我們這里盡量提高抽象層次減少系統耦合。

首先系統需要一個中心認證端,多個客戶端構成。所以需要一個SSO的模塊和一個PSO的模塊,這兩個模塊都由工具類和HttpModule組成

這里SSO的Keeper類和PSO的PSOClient類都是HttpModule。

Keeper在配置中設置一個URL,它只監聽對這個URL的請求,就是用來處理PSO向SSO端查詢SSOToken是否存在的請求的。它包含了SSO端的邏輯

PSOClient在配置中設置一個例外列表,它監聽例外列表外的所有請求,判斷是否有PSOToken,或者URL里是否包含SSOToken,它包括了整個PSO端的邏輯

TicketCreator是一個工具類,用于用戶登錄成功后調用來產生SSOToken的。

這兩個組件包括了所有的邏輯,但是有一些公共的東西我們需要抽象出來(不然就成了意大利面條式的代碼了:})

這個項目封裝了整個3DES加密解密,密鑰生成的邏輯,.NET的加密解密名字空間里的類用法很惡心,太惡心了。

Encrypter加密,Decrypter解密,KeyMaker密鑰生成,Common是公共的字符串操作類

這個項目包含了所有公共數據結構和操作的基本邏輯還有密鑰的獲取更新的功能,為了擺脫對數據庫的依賴,這里我們使用了文件的方式,其實老實說效率不會低。

KeyManager是密鑰管理的操作的類

PSORequest是PSO向SSO發送的SSOToken查詢請求的結構及其操作的類

SSOResponse是SSO驗證登陸成功后向PSO發送的包含SSOToken的請求的結構及其操作的類

Ticket是操作Cookie票據的類

?

實用的方法:

引入DLL到SSO站點

修改Web.Config

添加自定義配置和加載HttpModule的模塊

這樣子SSO站點就配置好了

引入DLL到PSO站點

修改Web.Config

添加自定義配置和加載HttpModule的模塊

ok

現在用KeyManager生成一個Key和IV的文件,之后就可以使用了

看看,是不是一句代碼都沒改,也不用重新編譯阿:}

?

下一章放出主要代碼和說明

?

To be continue......

轉載于:https://www.cnblogs.com/Alexander-Lee/archive/2007/01/29/633595.html

總結

以上是生活随笔為你收集整理的手把手教你可复用的SSO组件设计(设计篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。