چگونه با ASP.NET MVC کد کپچا بسازیم؟ پیاده سازی یک Captcha ی بسیار ساده در ASP.NET MVC ، در این مقاله قصد دارم تا طریقه ی پیاده سازی یک Captcha ساده رو براتون توضیح بدم .ابتدا یک Controller با نام Home به پروژه اضافه کرده و داخل آن اکشن های Index و CaptchaImage رو به شکل زیر می نویسیم :
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult CaptchaImage()
{
}
}
حال کد زیر را داخل اکشن CaptchaImage قرار میدیم :
public ActionResult CaptchaImage()
{
var bitmap = new Bitmap(50,30,PixelFormat.Format24bppRgb);
var graphic = Graphics.FromImage(bitmap);
var random = new Random();
var captchaNum = random.Next(1234, 9999);
graphic.FillRectangle(new SolidBrush(Color.Black), 0, 0, 50, 30f);
graphic.DrawString(captchaNum.ToString(), new Font("Tahoma", 10, FontStyle.Bold),
new SolidBrush(Color.White), 4, 8);
var memoryStream = new MemoryStream();
bitmap.Save(memoryStream, ImageFormat.Png);
return File(memoryStream.ToArray(), "image/png");
}
حال برای استفاده از این Captcha در داخل View اکشن Index کد زیر رو قرار میدیم:
<img src="@Url.Action("CaptchaImage")" alt="captcha" />
درصورتی که برنامه رو اجرا کنید ، می بینید که یک عدد رندوم ایجاد شده و در تگ img نمایش داده میشه . البته این روش یک مشکل داره و اون اینکه امکان ارسال درخواستهای fake جهت ایجاد تصاویر زیاد وجود داره که در مقاله ی بعدی راه کار مناسبتری در این باره ارائه خواهد شد