摘要
通過深入的交流和溝通
a) 網站基於Asp
b) 廠內用戶可直接訪問整個站點的所有頁面
c) 廠外用戶只能訪問指定的頁面
顯而易見
在Asp
IIS 和 ASP
如果你想了解更多關於HttpModules的資料
編程語言
開發工具
操作系統
使用HttpModules實現IP過濾功能的核心思想是
在HttpApplication的BeginRequest事件中附加自定義的處理程序即可完成Http請求的捕獲
配置文件的緩存參照微軟CommonServer項目中的實現邏輯
不需重啟站點
通過上文可知
因而我們將整個IP列表緩存
就具體需求而言
由於本文提供全部的c#源碼下載
DotCommon
│ DotCommonWebsiteFilter
│ WebsiteFilterConfiguration
│ WebsiteFilterHttpModule
├─Util
│ GlobesCache
│ XmlAttributeReader
└─WebsiteFilter
IPMatchEngine
UrlMatchCondition
UrlMatchEngine
? DotCommonWebsiteFilter
運行參數配置文件
? WebsiteFilterConfiguration
配置文件實體類
? WebsiteFilterHttpModule
實現了System
? GlobesCache
全局緩存操控類
? XmlAttributeReader
xml節點屬性讀取器
? IPMatchEngine
IP匹配引擎
? UrlMatchCondition
Url匹配條件(與正則表達式匹配)
? UrlMatchEngine
Url匹配引擎
WebsiteFilterHttpModule
void context_BeginRequest(object sender
{
if (HttpContext
return;
string ip = HttpContext
if (!WebsiteFilterConfiguration
{ //若在IP列表中找不到訪客ip
string rawUrl = HttpContext
UrlMatchEngine pu = WebsiteFilterConfiguration
//列表包含當前url且列表為黑名單
//換而言之
if (pu
{ //非公開url自動重定向
HttpContext
}
}
}
配置文件的根節點為DotCommon
通過pattern屬性指定正則表達式文本
PickedIP節點對應IP列表
配置好DotCommonWebsiteFilter
拷貝DotCommon
在網站根目錄下建立與配置文件中相對應的錯誤提示頁(例如)
修改nfig在<httpModules>節點下注冊WebsiteFilter模塊
<httpModules>
<add name=
type=
</httpModules>
分別從內網
結束語
本文僅針對具體需求闡述解決方案的構思過程
From:http://tw.wingwit.com/Article/program/net/201311/13977.html