2012-04-27 2 views
0

Как заблокировать диапазоны Ip, используя http-модули с C#. У меня есть простое решение, но его для одного Ip и как я могу прочитать IP-адреса из файла XML в HTTP модулей, так что если IP есть в этом файле будет заблокирован .Здесь мой кодКак заблокировать ip-диапазоны с помощью http-модулей?

public class MyHandler :IHttpModule 
{ 
public MyHandler(){} 

    public bool IsReusable 
    { 
     get { return false; } 
    } 

    public void Init(HttpApplication context) 
    { 
     context.BeginRequest += new EventHandler(Application_BeginRequest); 
    } 
    private void Application_BeginRequest(object source, EventArgs e) 
    { 
     HttpContext context = (source as HttpApplication).Context; 
     List<string> BlackListIp = new List<string>(); 
     BlackListIp.Add("127.0.0.1"); 

     if (BlackListIp.Contains(context.Request.UserHostAddress)) 
     { 
      context.Response.Write("<h1 style='color:red;'>Your IP is Blocked</h1>"); 
     } 
    } 

    public void Dispose() 
    { 
    } 
} 
+0

Похоже, что у вас уже есть код для блокировки IP-адресов. Ваш вопрос, как вы читаете из xml-файла из модуля http? –

+0

Да, у меня есть код @JohnW – HBK

ответ

0

Просто добавьте xml-файл внутри папки app_data и прочитать его с помощью XDocument. Вы можете использовать кеш с FileDependency для повышения производительности.