How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008

This guide demonstrated how to use BotDetect ASP.NET CAPTCHA in a new Visual Studio 2008 Web Site project.

Step 1. Create new ASP.NET 2.0 Web Site

  • Start Visual Studio 2008

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 1

  • Select the project location, name and programming language used

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 2

Step 2. Add a BotDetect reference to the project

  • In the Solution Explorer, right-click the Web Site project, and Choose "Add Reference"

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 3

  • Browse to the Lanap.BotDetect.dll file located in the BotDetect CAPTCHA installation folder

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 4

  • The reference is added to the project's Bin folder

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 5

Step 3. Configure your site to use BotDetect CAPTCHA

Using Solution Explorer, open your project's web.config file and:

  • In the <system.Web> section, add the following lines to the <httpHandlers> element:
<add verb="*" path="LanapCaptcha.aspx" 
  type="Lanap.BotDetect.CaptchaHandler, Lanap.BotDetect" />

This registers the HttpHandler used for drawing Captcha images and playing Captcha sounds.

  • Also in the <system.Web> section, add the following declaration (after the <httpHandlers> element, for example):
<sessionState mode="InProc" cookieless="AutoDetect" 
  timeout="20" sessionIDManagerType="
    Lanap.BotDetect.Persistence.CustomSessionIDManager, 
    Lanap.BotDetect" />

If you already have a <sessionState> declaration, modify it to include the sessionIDManagerType attribute. This is a workaround required for the audio CAPTCHA to work properly for IE 7.0 Vista and Google Chrome users, as explained in the BotDetect ASP.NET CAPTCHA FAQ.

  • In the <system.webServer> section, add the HttpHandler registration to the <handlers> element as well:
<remove name="LanapCaptchaHandler" />
<add name="LanapCaptchaHandler" 
  preCondition="integratedMode" verb="*" 
  path="LanapCaptcha.aspx" 
  type="Lanap.BotDetect.CaptchaHandler, Lanap.BotDetect" />

This is required for BotDetect Captcha to work properly when deployed on IIS 7.0 servers running in Integrated Mode.

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 6

Step 4. Add BotDetect CAPTCHA to the Visual Studio Toolbox for future reference.

  • Right-click anywhere in the Toolbox and select "Choose Items"

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 7

  • Once again, browse to the Lanap.BotDetect.dll file located in the BotDetect CAPTCHA installation folder

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 8

Step 5. Add the BotDetect CAPTCHA control to a page

  • Drag the newly added Captcha control from the Toolbox to the Default.aspx page

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 9

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 10

  • Save all files, then compile and run the project. You will see a CAPTCHA image rendered on your web form.

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 11

Step 6. Add user input validation logic

  • Add a TextBox, a Button, and a Label server control to the page

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 12

  • Rename the controls and set the page layout - the .aspx file fragment should look like:

    <div>
      <BotDetect:Captcha ID="SampleCaptcha" runat="server" />
    </div>
    <div>
      <asp:TextBox ID="CodeTextBox" runat="server"></asp:TextBox>
      <asp:Button ID="ValidateButton" runat="server" Text="Validate" />
      <asp:Label ID="MessageLabel" runat="server"></asp:Label>
    </div>
  • Add the following code to the Page_Load handler in the page codebehind:

    protected void Page_Load(object sender, EventArgs e)
    {
      if (IsPostBack)
      {
        string code = CodeTextBox.Text.Trim().ToUpper();
    	
        if (SampleCaptcha.Validate(code))
        {
          MessageLabel.Text = "Correct";
        }
        else
        {
          MessageLabel.Text = "Incorrect";
        }
    
        CodeTextBox.Text = null;
      }
    }
  • Save all files, then compile and run the project. You can then try CAPTCHA validation in action

How To use BotDetect ASP.NET CAPTCHA in Visual Studio 2008: screenshot 13

  • On production web sites you will typically change the validation code to redirect the user to the resource requested if CAPTCHA validation succeeds

Sample BotDetect CAPTCHA project source code

You can find the full source code similar to the result you should get when following these instructions in the sample project coming with the BotDetect CAPTCHA installation.

language: English Español Tiếng Việt