KendoUI Captcha
Design-Time

Sample Implementation
Runtime

Last updated
Was this helpful?


Last updated
Was this helpful?
Was this helpful?
// Code for implementing the kendoCaptcha on a Page.
public kendoCaptcha()
{
InitializeComponent();
}
/// <summary>
/// Process incoming data requests from the client.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void kendoCaptcha1_WebRequest(object sender, WebRequestEventArgs e)
{
switch (e.Request["action"])
{
case "handler":
e.Response.ContentType = "application/json";
e.Response.Write(ProcessHandler());
break;
case "image":
e.Response.BinaryWrite(GetImage(e.Request["captchaId"]));
break;
case "validationHandler":
e.Response.ContentType = "application/json";
e.Response.Write(ProcessValidation(e.Request["captchaId"], e.Request["captcha"]));
break;
}
}
/// <summary>
/// Generate and return a new Captcha.
/// </summary>
/// <returns></returns>
private object ProcessHandler()
{
CaptchaImage newCaptcha = CaptchaHelper.GetNewCaptcha();
Application.Session["captcha" + newCaptcha.UniqueId] = newCaptcha;
return new
{
captcha = $"./{((Widget)this.kendoCaptcha1).GetServiceURL()}?action=image&captchaId={newCaptcha.UniqueId}",
captchaId = newCaptcha.UniqueId
}.ToJSON();
}
/// <summary>
/// Generate and return the Captcha image.
/// </summary>
/// <param name="captchaId"></param>
/// <returns></returns>
private byte[] GetImage(string captchaId)
{
CaptchaImage captcha = (CaptchaImage)Application.Session["captcha" + captchaId];
var image = CaptchaHelper.RenderCaptcha(captcha);
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms, ImageFormat.Png);
return ms.ToArray();
}
}
/// <summary>
/// Validate the Captcha input and display the corresponding AlertBox.
/// </summary>
/// <param name="captchaId"></param>
/// <param name="captcha"></param>
/// <returns></returns>
private object ProcessValidation(string captchaId, string captcha)
{
CaptchaImage captchaImage = Application.Session["captcha" + captchaId];
var success = CaptchaHelper.Validate(captchaImage, captcha);
if (success)
AlertBox.Show("Success!", MessageBoxIcon.Information);
else
AlertBox.Show("Failed.", MessageBoxIcon.Error);
return success.ToString().ToLower();
}