نمایش نتایج 1 تا 1 از 1

نام تاپیک: راهنمایی در استفاده از کدزیر ipblocker

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    اهواز
    پست
    302

    راهنمایی در استفاده از کدزیر ipblocker


    using System;
    using System.Net;
    using System.Web;
    using System.Web.Caching;

    namespace IpBlocker
    {
    public class IpBlocker : IHttpModule
    {
    private int hits = 0;
    /// <summary>
    /// Define enum to specify visite type
    /// </summary>
    private enum VisiteType
    {
    FirstVisite = 2,
    Reviste = 4,
    }
    public void Init(HttpApplication context)
    {
    context.BeginRequest += OnBeginRequest;
    }
    public void Dispose()
    {

    }

    public void OnBeginRequest(object sender, EventArgs e)
    {
    var httpApplication = sender as HttpApplication;
    var httpContext = httpApplication?.Context;
    ProcessRequest(httpApplication, httpContext);
    }

    private void ProcessRequest(HttpApplication application, HttpContext httpContext)
    {
    //Checke if browser is a search engine web crawler
    if (httpContext.Request.Browser.Crawler)
    return;

    var ipAddress = application.Context.Request.UserHostAddress;

    if (httpContext.Cache[ipAddress] == null)
    {
    // Reset hits for new request after blocking ip
    if (hits > 0)
    hits = 0;

    hits++;

    httpContext.Cache.Insert(key: ipAddress,
    value: hits,
    dependencies: null,
    absoluteExpiration: DateTime.UtcNow.AddSeconds(1),
    slidingExpiration: Cache.NoSlidingExpiration);

    return;
    }

    else
    {
    if (httpContext.Cache[ipAddress] != null)
    {
    hits++;

    if (hits == (int)VisiteType.FirstVisite)
    {
    httpContext.Cache.Insert(key: ipAddress,
    value: hits,
    dependencies: null,
    absoluteExpiration: DateTime.UtcNow.AddSeconds(1),
    slidingExpiration: Cache.NoSlidingExpiration);
    return;
    }

    if (hits == (int)VisiteType.Reviste)
    {

    httpContext.Cache.Insert(key: ipAddress,
    value: hits,
    dependencies: null,
    absoluteExpiration: DateTime.UtcNow.AddSeconds(1),
    slidingExpiration: Cache.NoSlidingExpiration);
    return;
    }
    if (hits > (int)VisiteType.Reviste)
    {
    httpContext.Cache.Insert(key: ipAddress,
    value: hits,
    dependencies: null,
    absoluteExpiration: DateTime.UtcNow.AddMinutes(1),
    slidingExpiration: Cache.NoSlidingExpiration);

    httpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
    httpContext.Response.SuppressContent = true;
    httpContext.Response.End();
    }
    }
    }
    }
    }
    }


    در وب کانفیگ اونو معرفی کردم ولی اصلا نمیشناسه
    آخرین ویرایش به وسیله ma.andishe : یک شنبه 11 اسفند 1398 در 17:46 عصر

تاپیک های مشابه

  1. مبتدی: راهنمایی جهت موارد خواسته شده برای بهبود فایل زیر
    نوشته شده توسط lhbb67 در بخش Access
    پاسخ: 5
    آخرین پست: چهارشنبه 25 بهمن 1396, 09:26 صبح
  2. سوال: ترجمه دکمه های بستن بازیابی کوچک نمایی و بزرگ نمایی در یک پروژه ام اف سی
    نوشته شده توسط little.boy در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 2
    آخرین پست: دوشنبه 01 اسفند 1390, 10:49 صبح
  3. چطور می شه از فایل های dll برای زیبایی استفاده کرد ؟
    نوشته شده توسط milad.rahmian در بخش C#‎‎
    پاسخ: 4
    آخرین پست: شنبه 23 مرداد 1389, 01:03 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •