我有一個由多個.aspx頁面組成的ASP.NET應用程序。我希望其中一個.aspx頁面只能通過一組特定的IP訪問。這可能嗎?如何爲IIS中的單個URL設置IP白名單
我知道你可以在網站級別的IP白名單,但你可以在應用程序中的單個URL的IP白名單?
我有一個由多個.aspx頁面組成的ASP.NET應用程序。我希望其中一個.aspx頁面只能通過一組特定的IP訪問。這可能嗎?如何爲IIS中的單個URL設置IP白名單
我知道你可以在網站級別的IP白名單,但你可以在應用程序中的單個URL的IP白名單?
下資源演示瞭如何檢測客戶端IP在ASP.NET:
http://bytes.com/topic/asp-classic/answers/439176-how-get-clients-ip-address-asp-net
一旦你的IP,init事件期間從您所選擇的存儲機制加載您的白名單,也許(如果在一個頁面),如果IP不匹配,像這樣如果不是在一個頁面響應(使用HttpContext.Current.Response
:
if (!mySafeIpList.Contains(clientIP))
{
Response.Clear()
Response.StatusCode = (int)HttpStatusCode.Unauthorized
Response.End()
}
或者,只是單純的重定向到一個有效的頁面:
Response.Redirect("~/Head-Fake.aspx")
我希望這會有所幫助。
您可以隨時在自己的應用程序中檢查自己的白名單中的Request.ServerVariables [「REMOTE_HOST」]。
不幸的是,我很確定你不能通過IIS爲單個頁面執行它(如果你想驗證,請查找Serverfault.com以獲取更多細節),但是如果你想以編程的方式執行它,你可以勾選Application_BeginRequest在你的global.asax文件中。根據您的限制檢查請求URL和請求IP地址,並且只允許請求在通過時繼續。
+1:用於在'Global.asax'中實現過濾器的建議。 – kbrimington 2010-08-01 01:08:17