Yazar Ol Yazar Girişi
Yazar Girişi
E-Posta Adresi
Şifre
Şifremi Unuttum
Asp.Net .Net MVC PHP & MySQL C# PhotoShop CSS jQuery AlgoritmA MsSQL Server HTML Ruby
- Kategoriler -
Türkçe
English
German
Tüm Kategoriler
CAPTCHA Örneği

                Merhaba Arkadaşlar,

                Formlarımızda bir parça daha güvenlik sağlayabilmek adına farklı captcha yöntemleri bulunmakta. Şimdi guid üretilen bir değerin resim olarak çevrilip captcha olarak kullanılmasını görelim.

CaptchaModel classımız aşağıdaki gibi olacak.

     public override void ExecuteResult(ControllerContext context)
        {
            Bitmap bitmap = new Bitmap(context.HttpContext.Server.MapPath("~/codeback.jpg"));
            Graphics graphics = Graphics.FromImage(bitmap);
            string code = GetCaptchaString();
            SolidBrush brush = new SolidBrush(Color.White);
            graphics.DrawString(code, new Font("Courier", 25, FontStyle.Bold), brush, new Point(10, 16));
            HttpResponseBase response = context.HttpContext.Response;
            bitmap.Save(response.OutputStream, ImageFormat.Gif);
            response.ContentType = "image/jpeg";
            context.HttpContext.Session["captcha"] = code;

        }

        public string GetCaptchaString()
        {
            return new Random().Next(10000, 99999).ToString();
        }
    }

Doğrulama ve kontrol kısmı içinde ayrıca captchamodel isimli bir class tanımlıyorum.

   public class CaptchaModel
    {
        [Display(Name = "Doğrulama Kodu")]
        [Required(ErrorMessage = "Lütfen doğrulama kodunu boş bırakmayınız.")]
        public string Captcha { get; set; }
    }

Bir düzen oluşturmak adına bu classları projenizde Model dizinine ekleyebilirsiniz.

Artık controller kısmından view oluşturup cshtml sayfamızı düzenliyoruz. 

@model CaptchaExample.Models.CaptchaModel
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    {
        <table>
            <tr>
                <td colspan="3">
                    <img src="@Url.Action("capthaGetir")" title="DOĞRULAMA KODU" />
                </td>

            </tr>
            <tr>

                <td>
                    @Html.LabelFor(m => m.Captcha) :
                </td>

                <td>
                    @Html.TextBoxFor(m => m.Captcha)
                </td>
                <td>
                    @Html.ValidationMessageFor(m => m.Captcha)
                </td>
            </tr>
            <tr>
                <td colspan="3">
                    <input type="submit" value="DOĞRULA" />
                </td>
            </tr>
        </table>
    }
}
    </div>
</body>
</html>

html sayfamızda bulunan 

<img src="@Url.Action("capthaGetir")" title="DOĞRULAMA KODU" />

 kısmına karşılık gelecek işlemi controller kısmında aşağıdaki şekilde yazıyoruz.

public Captcha capthaGetir()
        {
            return new Captcha();
        }

 Captchanın kontrolü ve işlemi için de controller kısmında post işlemini aşağıdaki şekilde tanımlıyoruz.

[HttpPost]
        public ActionResult Index(CaptchaModel capchaModel)
        {
            if (ModelState.IsValid)
            {
                if (Session["captcha"] != null && capchaModel.Captcha == Session["captcha"].ToString())
                {
                    ModelState.AddModelError("", "Doğrulama kodunu doğru girdiniz.");
                }
                else
                {
                    ModelState.AddModelError("", "Doğrulama kodunu yanlış girdiniz.");
                }
            }
            else
            {
                ModelState.AddModelError("", "Lütfen doğrulama kodunu boş bırakmayınız.");
            }

            return View(capchaModel);
        }

Herkese kolaylıklar.

 

Sosyal Hesabında Paylaş

1619 görüntüleme

Yorumlar
Adınız Soyadınız
Mail Adresiniz
Doğrulama Kodu

Bildiklerimiz.Net Bildiklerimizi paylaşıyoruz, bilmediklerimizi öğreniyoruz. biz bunları yapıyoruz ya siz...

© 2019 Bildiklerimiz Tüm hakları saklıdır.
bir Bildiklerimiz.Net projesidir.