VB.NET trying simple captcha

Posted by Pride Grimm on Stack Overflow See other posts from Stack Overflow or by Pride Grimm
Published on 2012-10-18T22:57:40Z Indexed on 2012/10/18 23:00 UTC
Read the original article Hit count: 241

Filed under:
|

I'm trying to write a simple captcha program in vb.net. I'm just wanting to make an image from random numbers and display it, check the answer, and then proceed. I'm pretty new to vb.net, so I found some code to generate the information. I will cite the owner when I find it again (http://www.knowlegezone.com/80/article/Technology/Software/Asp-Net/Simple-ASP-NET-CAPTCHA-Tutorial)

This is in the onload() of default2.aspx

 Public Sub returnNumer()

    Dim num1 As New Random
    Dim num2 As New Random

    Dim numQ1 As Integer
    Dim numQ2 As Integer
    Dim QString As String


    numQ1 = num1.Next(10, 15)
    numQ2 = num2.Next(17, 31)



    QString = numQ1.ToString + " + " + numQ2.ToString + " = "
    Session("answer") = numQ1 + numQ2


    Dim bitmap As New Bitmap(85, 35)
    Dim Grfx As Graphics = Graphics.FromImage(bitmap)
    Dim font As New Font("Arial", 18, FontStyle.Bold, GraphicsUnit.Pixel)
    Dim Rect As New Rectangle(0, 0, 100, 50)

    Grfx.FillRectangle(Brushes.Brown, Rect)
    Grfx.DrawRectangle(Pens.PeachPuff, Rect) ' Border
    Grfx.DrawString(QString, font, Brushes.Azure, 0, 0)




    Response.ContentType = "Image/jpeg"
    bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)


    bitmap.Dispose()
    Grfx.Dispose()



End Sub

So I put this in a separate page, like this

This all works find and dandy, but when I get the answer from the session like this

Dim literal As String = Convert.ToString(Session("answer"))

It's always one behind. So if The images adds to 32, the answer in session isn't 32. But after a refresh (and a new image) the session("answer") will be 32. Is there a way to refresh the session on page 1, after the default2.aspx loads? Is there a better way to do this?

I though about trying to run the code all on one page, and trying to set the src of and image to returnNumber(), but I need a bit of help on that one.

© Stack Overflow or respective owner

Related posts about vb.net

Related posts about captcha