Visual Basic.NET - Actualizar Imagen tras error en Captcha

 
Vista:

Actualizar Imagen tras error en Captcha

Publicado por Alberto (1 intervención) el 07/05/2011 02:22:22
Hola, este es mi primer tema en este foro, mi duda parte en que estoy haciendo un sistema Captcha, donde inicio generando el codigo, despues lo paso a jpg y lo guardo en una direccion especifica, despues muestro la imagen y espero que el usuario coloque el codigo, si el codigo es correcto, sale un msj de "codigo correcto" y listo, posteriormente pondre mas codigo.

Pero si el codigo es erroneo, corro nuevamente el generador de codigo y lo grabo sobre la imagen substituyendo la anterior y lo muestro en la pagina.

Cuando lo pruebo en mi computadora por medio del CTRL+F5 funciona perfectamente, sin embargo cuando lo subo al servidor no funciona; cuando el usuario se equivoca la imagen no cambia, pero el codigo si.

Si refresco la pagina con F5 la imagen cambia correctamente, he intentado usar el updatepanel, pero no funciona, les pido su apoyo ya que llevo muchos dias investigando y probando y no lo logro hacer funcionar.

Si pueden apoyarme a resolverlo y darme una leve explicacion de que pasa, se los agradecere mucho, el codigo esta en vb.net, y es el siguiente:

Imports System.Data
Imports System.Drawing.Color
Imports System.Drawing.Imaging
Imports System.Drawing

Partial Public Class _Default
Inherits System.Web.UI.Page
Public codigo As String
Public reinicio As Integer = 0


Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
If TextBox1.Text = CType(Session("validador"), String) Then
Label1.Text = "Correcto"
Session.Abandon()
Else
TextBox1.Text = ""
Label1.Text = "Codigo Incorrecto"
Session.Add("validador", CType(Session("validador2"), String))
End If

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Session.Timeout = 5
Dim Longitud As Integer = 5
Dim Valores(61) As Char
Dim i As Integer
Dim j As Integer
j = 64
For i = 0 To 61
j = j + 1
Valores(i) = Chr(j)
Select Case j
Case 90
j = 96
Case 122
j = 47
End Select
Next
Randomize()
For i = 1 To 5
Randomize()
codigo = codigo + Valores(Int(61 * Rnd()))
Next
Dim objLienzo As Bitmap = New Bitmap(100, 50)
Dim objDibujar As Graphics = Graphics.FromImage(objLienzo)
Dim objColor As System.Drawing.Color
objColor = Color.White
Dim objFont As New Font("Curlz MT", 24)
Dim objCoordenadas As New PointF(0, 0)
Dim objPincelFondo As New SolidBrush(objColor)
Dim objPincelTexto As New SolidBrush(Color.Black)
objDibujar.FillRectangle(objPincelFondo, 0, 0, 300, 100)
Dim dashed_pen As New Pen(Color.Black, 1)
objDibujar.DrawBezier(dashed_pen, 0, 7, 30, 40, 75, 12, 99, 45)
objDibujar.DrawLine(dashed_pen, 30, 0, 100, 30)
objDibujar.DrawString(codigo, objFont, objPincelTexto, objCoordenadas)
objLienzo.Save("C:\MemberSites\MemberSites_AspSpider_Info\brnaer\webroot\captcha\captcha.jpeg", ImageFormat.Jpeg)
'objLienzo.Save("C:\Documents and Settings\Administrador\Escritorio\Captcha\Captcha\captcha.jpeg", ImageFormat.Jpeg)
Session.Add("validador2", codigo)
If Not IsPostBack Then
Session.Add("validador", codigo)
End If
End Sub

End Class


Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder