Osman KURT

Kendime Not

Yeni Başlayanlar İçin MVC Eğitimi

Daha önceki yazılarımda mvc eğitimim verdiğimi belirtmiştim. Bunu yenilemekte fayda görüyorum. Arkadaşlar ben İstanbul'da ikamet ediyorum bu yüzden yüz yüze eğitimlerde haliyle İstanbul içi olmak durumunda. Şehir dışında olan arkadaşlar için de uzaktan bağlantı programalrı sayesinde gerekli eğitimi gerçekleştirebiliyorum.



Bununla alakalı birçok arkadaş mail ile bağlantı sağladıkları için bu yazıyı paylaşma gereği duydum.

Eğer ki siz de mvc eğitimi almak istiyorsanız info@osmankurt.net adresinden yada iletişim formundan bana ulaşabilirsiniz. İlk aşamada lütfen ikamet ettiğiniz il ve ilçe bilginizi paylaşınız.

İlginiz için çok teşekkür ederim.
Görüşmek üzere

Osman KURT

MVC'de Captcha Kullanımı

Yakın bir tanıdığımın işine yaracağı için üzerinde çalıştığım bir örnek, basit ama hayat kurtarır. Günümüz teknolojisnin insan hayatında bazen bıkkınlık verir derecesine rahatsızlık verdiğinin farkındayız.

Bunlarda yazılan otomatik sistemlerin payı büyük. Yazılım tekniklerinin gelişmesi ile suistimal oranlarıda arttı haliyle.

Nasıl mı?

Reklam amaçı yazılan botlar gibi.
İşte bunları engellemenin  en önemli faktörlerinden bir tanesi Captcha kullanımı. Yani karşımızda ki kullanıcının insan olduğunu anlamak.

Onu da nasıl yapıyoruz bakalım şimdi.
Oluşturduğumuz bir projenin HomeController kısmına şu kodu yazıyoruz;

public ActionResult CaptchaImage(string prefix, bool noisy = true)
       {
            int i, r, x, y;
            var rand = new Random((int)DateTime.Now.Ticks);
            int a = rand.Next(10, 99);
            int b = rand.Next(0, 9);
            var captcha = string.Format("{0} + {1} = ?", a, b);
            Session["Captcha"] = a + b;
            FileContentResult img = null;
            using (var mem = new MemoryStream())
            using (var bmp = new Bitmap(130, 30))
            using (var gfx = Graphics.FromImage((Image)bmp))
            {
                gfx.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
                gfx.SmoothingMode = SmoothingMode.AntiAlias;
                gfx.FillRectangle(Brushes.White, new Rectangle(0, 0, bmp.Width, bmp.Height));
                if (noisy)
                {
                    var pen = new Pen(Color.Yellow);
                    for (i = 1; i < 10; i++)
                    {
                        pen.Color = Color.FromArgb((rand.Next(0, 255)),(rand.Next(0, 255)),(rand.Next(0, 255)));
                        r = rand.Next(0, (130 / 3));
                        x = rand.Next(0, 130);
                        y = rand.Next(0, 30);
                    }
                }
                gfx.DrawString(captcha, new Font("Tahoma", 15), Brushes.Gray, 2, 3);
                bmp.Save(mem, System.Drawing.Imaging.ImageFormat.Jpeg);
                img = this.File(mem.GetBuffer(), "image/Jpeg");
            }
            return img;
        }

Daha sonra ön tarafa geçiyoruz ve kullanıcılarımıza göstereceğimiz resim parçasını ayarlıyoruz. Bunun için de alt kısımda ki kod bloğunu kullanıyoruz.

<script>
    function GetCaptcha() {
        $("#rsm").attr('src', '/Home/CaptchaImage?' + new Date().getTime());
   }
</script>
<img src="@Url.Action("CaptchaImage")" id="rsm" style="" />
<input type="button" value="Yenile" onclick=" return GetCaptcha()" />

Post ettiğimiz zaman doğruluk kontrolünü,
if (Session["Captcha"] == null || Session["Captcha"].ToString() != model.Captcha)
{
     //hata mesajı
     return View(model);
}

Session da tuttuğumuz captcha verisi ile kullanıcının girdiği veriyi karşılaştırıyoruz ve kontrolümüzü sağlıyoruz.

Görüşmek üzere
Osman KURT
Yazılım Uzmanı & MVC Eğitmeni

Asp.net MVC Dersleri Verilir - Asp.net MVC Egitimi

.Net platformunun yeni ve kalıcı yüzü olan mvc'de söz sahibi olmak, piyasaya kaliteli hizmet vermek ya da piyasada daha kolay ve sağlam bir iş sahibi olmak isteyen kişilere asp.net mvc eğitimi verilir. Verilecek eğitimden sonra mvc'de sıfırdan bir proje nasıl oluşturulur, model controller view yapıları, data katmanı vb gerekli bütün bilgileri bulabileceksiniz. Eğitimin sonunda benim danışmanlığım da yapacağınız bir proje ile (istenilen proje yapılabilir) edindiğiniz bütün bilgileri pekiştirecek gerçek hayatta karşılaşacağınız problemlere ne tür hızlı ve doğru çözümler bulabileceğinizi öğreneceksiniz.

Lafı uzatmadan anlatmak gerekirse okullarda öğrendiğiniz gereksiz bilgilerin gerçek hayatta hiçbir işe yaramadığını anlayan kişiler bu yazıyı okuyorsanız üst kısımda ne demek istediğimi gayet iyi anladınız demektir. Eğer ki bu meslekten ekmek yemek istiyorsanız ya büyük kurslara çuvalla para yatıracak bir grup insan içinde öğrenmek için çabalayacaksınız ya da birebir daha az ücret karşılığında hem de piyasanın içinden bir yazılımcıdan eğitim alacaksınız karar sizin.

İrtibat: iletişim sayfasından ya da info@osmankurt.net

Görüşmek üzere

Osman KURT
Yazılım Uzmanı