How to create Captcha in ASP.Net with C#

 In aspx page 
  1. <form id="form1" runat="server">  
  2. <div>  
  3. <div>  
  4. <h1 align="center">captcha image</h1>  
  5. <table align="center"><tr><td>Prove You are not a robot:</td><td>  
  6. <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>  
  7. <td><asp:TextBox ID="txtrobocomp" runat="server" Font-Names="Vivaldi"  
  8. Font-Size="X-Large" Font-Bold="True" BackColor="#CC99FF" ForeColor="#CC0066"  
  9. Width="148px" Height="33px"  
  10. ></asp:TextBox></td><td>  
  11. <asp:ImageButton ID="ImageButton1" runat="server"  
  12. ImageUrl=""  
  13. Width="30px" Height="30px" AlternateText="refresh"  
  14. onclick="ImageButton1_Click" />  
  15. </td><%--<td>  
  16. <asp:ImageButton ID="ImageButton2" runat="server"  
  17. ImageUrl="~/images/download.jpg" Height="30px" Width="30px"  
  18. onclick="ImageButton2_Click"/></td>  
  19. <td>--%>  
  20. <asp:CompareValidator ID="CompareValidator1" runat="server"  
  21. ControlToValidate="TextBox1" ControlToCompare="txtrobocomp"  
  22. ErrorMessage="Please enter correct Text" ForeColor="Red"></asp:CompareValidator></td>  
  23. </tr>  
  24. <tr><td colspan="6" align="center">  
  25. <asp:Button ID="Button1" runat="server" Text="Submit"  
  26. style="height: 26px" /></td></tr></table>  
  27. </div>  
  28. </form>  
in aspx.cs page 
  1. protected void Page_Load(object sender, EventArgs e)  
  2. {  
  3. if (!IsPostBack)  
  4. {  
  5. StringBuilder builder = new StringBuilder();  
  6. builder.Append(RandomNumber(10, 99));  
  7. builder.Append(RandomString(3, true));  
  8. builder.Append(RandomString(2, false));  
  9. txtrobocomp.Text = builder.ToString();  
  10. }  
  11. }  
  12. protected void ImageButton1_Click(object sender, ImageClickEventArgs e)  
  13. {  
  14. StringBuilder builder = new StringBuilder();  
  15. builder.Append(RandomNumber(10, 99));  
  16. builder.Append(RandomString(3, true));  
  17. builder.Append(RandomString(2, false));  
  18. txtrobocomp.Text = builder.ToString();  
  19. }  
  20. private int RandomNumber(int min, int max)  
  21. {  
  22. Random rd = new Random();  
  23. return rd.Next(min, max);  
  24. }  
  25. private string RandomString(int size, bool lowerCase)  
  26. {  
  27. StringBuilder builder = new StringBuilder();  
  28. Random rd = new Random();  
  29. char ch;  
  30. for (int i = 0; i < size; i++)  
  31. {  
  32. ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * rd.NextDouble() + 65)));  
  33. builder.Append(ch);  
  34. }  
  35. if (lowerCase)  
  36. return builder.ToString().ToLower();  
  37. return builder.ToString();  
  38. }  
  39. }