Saludos
En este ejemplo crearemos un captcha sencillo para nuestros formularios de inicio de sesión.
...
Adicionar un nuevo elemento al proyecto de tipo Controlador Genérico .ashx, el cual contendra la imagen captcha autogenarada aleatoriamente Random() numeros y letras.
El resultante sera como la siguiente imagen:
Al controlador Generico le ponemos el nombre "captcha.ashx"
Insertamos el siguiente código
<%@ WebHandler Language="VB" Class="captcha" %>
Imports System
Imports System.Web
Imports System.Web.SessionState
Imports System.Drawing
Public Class captcha
Implements IHttpHandler
Implements IRequiresSessionState
Public Sub ProcessRequest(context As HttpContext) Implements IHttpHandler.ProcessRequest
context.Response.ContentType = "image/GIF"
Dim imagen_GIF As Bitmap = New System.Drawing.Bitmap(80, 30)
Dim grafico As Graphics = System.Drawing.Graphics.FromImage(imagen_GIF)
grafico.Clear(Color.Gainsboro)
Dim tipo_fuente As New Font("Comic Sans", 12, FontStyle.Bold)
Dim randomNum As String = String.Empty
Dim autoRand As New Random()
For x As Integer = 0 To 4
randomNum += System.Convert.ToInt32(autoRand.[Next](0, 9)).ToString()
Next
Dim i_letra As Integer = System.Convert.ToInt32(autoRand.[Next](65, 90))
Dim letra As String = (ChrW(i_letra)).ToString()
randomNum += letra
context.Session("RandomNumero") = randomNum
grafico.DrawString(randomNum, tipo_fuente, Brushes.Black, 5, 5)
imagen_GIF.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
tipo_fuente.Dispose()
grafico.Dispose()
imagen_GIF.Dispose()
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
Insertamos un control de tipo Image en el WebForm de inicio de sesión y en su propiedad
ImageUrl le asignamos en nombre del controlador en este caso "captcha.ashx"
y para hacer la prueba
If txtImg.Text = Session("RandomNumero") Then
lblInformacion.Text = "OK."
else
lblInformacion.Text = "Error verifando codigo de la imagen, vuelva a repetirlo"
end if
No hay comentarios:
Publicar un comentario