0

如何使用带有 c# 的 http 模块阻止 Ip 范围。我有一个简单的解决方案,但它适用于单个 Ip,以及如何从 http 模块中的 xml 文件读取 IP,以便如果该文件中有 IP,它将被阻止。这是我的代码

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()
    {
    }
}
4

1 回答 1

0

只需在 app_data 文件夹中添加 xml 文件并使用 XDocument 读取它。您可以使用带有 FileDependency 的缓存来提高性能。

于 2012-04-27T23:41:51.157 回答