|
1. 需求分析
通過深入的交流和溝通,確認了該發電廠在企業網站用戶訪問控制方面的改進要求,大致情況如下:
b) 廠內用戶可直接訪問整個站點的所有頁面,員工不需要身份驗證
c) 廠外用戶只能訪問指定的頁面
顯而易見,他們就是針對企業網站增加一項IP過濾功能,在廠外用戶訪問某些敏感頁面時將其拒之門外。首先我們需要設置一個IP列表和一個Url列表,前者包含所有廠內IP,后者包含廠外用戶可訪問的全部Url,并且這兩個列表都是可維護的;另外一個核心問題是,我們需要選擇一個合理的方式將開發好的功能模塊集成到企業網站中,HttpModules義不容辭。
在ASP.NET時代,IIS 接收到請求并將其調度給 ASPNET_isapi.dll之后,ASP.NET 引擎開始逐個對已配置的HTTP模塊(HttpModules)進行初始化,然后再調用正確的HTTP處理程序并呈現被請求的資源,最后將所生成的標記返回給 IIS 和請求客戶端(如下圖所示)。
NET環境下為網站增加IP過濾功能-網頁教學網 src="/d/file/itjie/ASPNETjishu/2014-10-23/b3120d16928e8d58a129173bf4e95194.gif" width=449 border=0>
如果你想了解更多關于HttpModules的資料,請自行查閱。
2. 方案設計
2.1. 開發環境
編程語言:C#2.0
開發工具:Visual Studio.NET2008
操作系統:windows2003 R2
2.2. 概要設計
使用HttpModules實現IP過濾功能的核心思想是:自定義一個HttpModule捕獲每一個用戶請求,然后獲取相關的用戶IP和被請求的Url進行邏輯判斷,將未授權的請求重定向到一個錯誤提示頁。Http請求授權與否的判斷邏輯為:
1) 判斷請求是否來自本地計算機,是則自動忽略,否則繼續;
2) 判斷用戶IP是否屬于內網(IP列表),是則忽略,否則繼續;
3) 判斷被請求Url是否授權所有用戶訪問,是則忽略,否則繼續;
4) 將請求重定向到錯誤提示頁。
NET環境下為網站增加IP過濾功能-網頁教學網 src="/d/file/itjie/ASPNETjishu/2014-10-23/91694edbb9ffb0bde48c798f8ea16dbc.gif" width=569 border=0>
在HttpApplication的BeginRequest事件中附加自定義的處理程序即可完成Http請求的捕獲。此外,為了便于維護我們應將程序運行需要的各項參數(IP列表、Url列表、錯誤提示頁路徑等等)存儲于特定的XML配置文件中,為了提高效率,我們還需要將配置文件執行內存級的緩存處理并對IP、Url匹配算法進行適當的優化。
AspNet技術:ASP.NET環境下為網站增加IP過濾功能第1/2頁,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。