CaptchaControl.dll Referans Ederek Güvenlik Kontrolü (Captcha)

İnternet ortamında pek çok kez karşılaşmışızdır bu captcha ile. Captcha sayesinde örneğin; bir kullanıcı yorum bırakmak istiyor diyelim ve yorumunu gönder tuşuna art arda basarak birçok kez istek yolluyor. Bu da veritabanımıza sürekli aynı verilerin pek çok kez girilmesine neden olur. Sistem yükümüzü artırır. Hatta daha da kötü sonuçlara yol açabilir. Bu gibi durumlarda istek yollayanın makine mi yoksa insan mı olduğunu ve bir güvenlik kontrolünden geçilerek düzenli bir şekilde veri kaydını sağlamak için captcha kullanabiliriz.

Web sitelerindeki sürekli aynı copy-paste kodlar ve anlatımlardan dolayı belki captchayı birçok kez denediniz ve başarılı bir sonuç elde edemediniz. En basitinden öncelikle http://www.dosya.tc/server16/LKTUzQ/ARY_captcha.rar.html captcha için gerekli olan .dll dosyamızı indirelim. İndirdikten sonra elde ettiğimiz dosyaları resimdeki gibi bin klasörümüze kopyalayalım.

1

Daha sonra sol taraftaki ToolBox‘tan bir yeni bir tab oluşturup isim verebiliriz ve MSCaptcha.dll dosyamızı referans veriyoruz. Bunun için oluşturduğumuz tab‘a sağ tıklayıp Choose Items diyerek .NET Framework Components bölümünde Browse ile bin dosyamıza kopyaladığımız MSCaptcha.dll i göstererek işlemimizi tamamlıyoruz.

2

Bundan sonra site ayarlarımızı yaptığımız web.config dosyamızın <system.web> …. </system.web> tag’leri arasına

<httpHandlers>
<add verb=”GET” path=”CaptchaImage.axd” type=”MSCaptcha.CaptchaImageHandler, MSCaptcha”></add>
</httpHandlers>

yazıyoruz. Bunun ile refere ettiğimiz .dll dosyamızın site ayarları için gerekli kodlarını tamamlıyoruz.

7

Daha sonra .aspx sayfamıza örnek olarak bir Textbox, bir Button, bir Label ekliyoruz. Toolbox’ta .dll’ini eklediğimiz Captcha Kontrolümüzüde sürükleyip .aspx dosyamıza bırakıyoruz. Sürüklediğimiz Captcha Kontrolümüzü istediğimiz gibi düzenleyip ayarlayabiliriz. Bunun içinde resimde görüldüğü gibi, font ayarı, renk ayarı, max ve min timeout ayarları, captchadaki kelimelerin kaç harften oluşacağı, captchanın hangi karakterleri içereceği, gözükecek olan captchanın kullanıcıya ne tarzda gösterileceğiniz dilediğimiz şekilde ayarlıyoruz.

<rsv:CaptchaControl ID=”CaptchaControl1″ runat=”server” BorderColor=”Cyan”
CaptchaLength=”4″ CaptchaHeight=”100″ CaptchaWidth=”300″ CaptchaLineNoise=”Low”
CaptchaMinTimeout=”5″ CaptchaMaxTimeout=”250″ CaptchaFontWarping=”Low” ForeColor=”#66ACD5″ BackColor=”White”
CaptchaChars=”ABCDEFGHIJKLMNOPQRSTUVYWXZ123456789″ Font-Size=”Small” FontColor=”Purple” />

Ayrıca captchamızın Tag Prefix ve Namespace gibi özelliklerinin referansının alınacağı

<%@ Register Assembly=”MSCaptcha” Namespace=”MSCaptcha” TagPrefix=”rsv” %>

kodumuzu en üste yazıyoruz.

3

Code Behind kısmında ise captcha kontrolümüzün çalışıp çalışmadığını test etmek için kodlarımızı yazıyoruz. Öncelikle grafik temel işlevlerine erişim için

using System.Drawing;

 refere ediyoruz. Daha sonra Button’ımızın click event’ine aşağıdaki kodlarımızı yapıp kontrollerimizi gerçekleştiriyoruz. Kodları istediğiniz gibi düzenleyebilirsiniz. Örneğimizde captcha kodu doğru girilmişse “DOĞRU“, yanlış girilmişse “YANLIŞ” olarak uyarılarımız label ile gösterilmektedir.

4

CaptchaControl1.ValidateCaptcha(TextBox1.Text); //CaptchaControl1, toolboxtan sürüklediğimiz dll ile referans ettiğimiz captcha kontrolümüzü id’si

if (CaptchaControl1.UserValidated)
{
//captcha doğruysa yapılacaklar
Label1.ForeColor = Color.Green;
Label1.Text = “Doğru Captcha”;
}
else
{
//captcha yanlış girildiyse yapılacaklar
Label1.ForeColor = Color.Red;
Label1.Text = “Yanlış Captcha”;
}

ile işlemlerimiz gerçekleşmiş oluyor.

5

 

Captcha’mızda random olarak üretilen değeri girdiğimizd Doğru Captcha yazısı ile karşılaşıyoruz, sayfa yenilendiği ve doğruladan sonra farklı bir sayfaya yönlendirmedğimiz için captcha’mızın resimi random olarak değişti. Label’ımızda ise önceki captcha’mızın sonucu gösterilmektedir. Kodları dilediğiniz gibi değiştirebilirsiniz.

Captha’mızı bir de yanlış olarak girelim. Bu durumda da Yanlış Captcha uyarısını alacağınız.

6

İnternetteki pek çok copy-paste paylaşıma ve çalışmayan üstü kapalı anlatımlara çare olması dileğiyle…

ary

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: