Asp.net İle reCaptcha Kullanımı

Geliştirmiş olduğumuz sitelerde özellikle Bot‘ların yapmış olduğu rahatsız edici yorumlardan korunmak için veya sahte kullanıcı oluşturup sitemizde sahte hareketler yapmalarına engel olmak için genellikle bir resimdeki yazı ve karakterlerden oluşan doğrulama kodları ile güvenliği sağlarız. Kullanıcılar doğrulamalardan pek memnun olmasalar da ister istemez sitelerimizde güvenlik doğrulama kullanmak durumunda kalıyoruz. Ben daha önce geliştirmiş olduğum sitelerimde doğrulama işlemleri için kendi yazdığım bir Class yardımı ile doğrulama kontrolünü gerçekleştiriyordum. Bu makalemde ise Google‘nin bir sevisi olan reCaptha hizmetini Asp.Net projelerimizde nasıl kullanabiliriz onu inceleyeceğiz.Google‘nin reCapthca hizmeti ücretsiz güvenlik doğrulama servislerinin en iyisidir diyebilirim.
Öncelikle servisi kullanabilmek için API edinmemiz gerekmektedir. Sırası ile aşağıdaki adımları takip ederek sitemize reCaptcha servisini entegre edebiliriz.

1- https://www.google.com/recaptcha adresinden Get reCaptcha linkine tıklıyoruz.

01

2- Yönlendirilmiş olduğumuz sayfada Sing Up Now! düğmesine tıklayıp giriş yapıyoruz.

02

3- Giriş işlemini gerçekleştirdikten sonra gelen ekranda Domain adresine reCaptcha kullanacağımız sitemizi yazıyoruz. Sonra Create deyip devam ediyoruz.

03

4- Karşımıza gelen ekranda bize Public Key ve Private Key sunulacaktır.Public ve Private Key ‘leri kullanarak reCaptcha‘yi sitemize entegre edeceğiz. Daha sonra “reCaptcha API Document” linkine giderek Asp.Net entegrasyonu için gerekli dökümanı ve DLL‘i indirebiliriz.

04

Dll indirme için;

05

5- Asp.Net web site projemizi açtıktan sonra indirmiş olduğumuz Recaptcha.dll ‘imizi projemize sağ tıklayıp Add Referans kısmından ekliyoruz.

06

7- Güvenlik doğrulaması yapacağımız sayfamızı açalım. İlk olarak Page Directive bölümüne aşağıdaki kodu ekleyelim. Eklemiş olduğumuz bu kod reCaptcha servisini sayfaya tanıtmamızı sağlayacaktır.

[csharp]

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

[/csharp]

8- Daha sonra aşağıdaki resimdeki gibi sayfama bir tablo ekliyorum ve 1 Button 1 reCaptcha kontrolü ve 1 tane de Literal ekliyorum. Eklemiş olduğum Button’nun OnClick olayında reCaptcha‘da gösterilen değer ile kullanıcının girmiş olduğu değeri kontrol ediyorum.

[csharp]

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.auto-style1 {
width: 38%;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>

<table class="auto-style1">
<tr>
<td colspan="2">Bot Olmadığınızı Kanıtlayın.</td>
</tr>
<tr>
<td>Güvenlik Kodu</td>
<td>
<recaptcha:RecaptchaControl ID="reCaptcha" runat="server" PublicKey="6LdxJPQSAAAAAFRPUP_mesutx.com" PrivateKey="6LdxJPQSAAAAAAdJ3c_mesutx.com" />
</td>
</tr>
<tr>
<td>
<asp:Literal ID="ltrInfo" runat="server"></asp:Literal>
</td>
<td>
<asp:Button ID="btnValidate" runat="server" Text="Doğrula" OnClick="btnValidate_Click" /></td>
</tr>
</table>

</div>
</form>
</body>
</html>

[/csharp]

006

NOT: Yukarıda HMTL içerisinde eklemiş olduğumuz reCaptcha kontrolünde bulunan Public ve Private Key özelliklerine google‘nin size vermiş olduğu değerleri girmeyi unutmayınız.

[csharp]
<recaptcha:RecaptchaControl ID="reCaptcha" runat="server" PublicKey="Sizin_public_key" PrivateKey="Sizin_private_key" />
[/csharp]

Code Behind tarafında gerekli validasyonu gerçekleştiriyorum.

[csharp]
protected void btnValidate_Click(object sender, EventArgs e)
{
if (reCaptcha.IsValid)
{
ltrInfo.Text = "Başarılı Bot Değilsin.";
}
else
{
ltrInfo.Text = "Başarısız!!! Sen Bir Bot’sun :)";
}
}
[/csharp]

07 08
Yararlı olması dileğiyle…

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

5 Responses

  1. beyazadamak dedi ki:

    teşekkürler. Eline sağlık.

  2. Burhan Toksöz dedi ki:

    Eline sağlık Mesut. işime yaradı.

  3. EminUzun dedi ki:

    Sade anlaşılır anlatmışsınız. elinize sağlık faydalı bir içerik olmuş.

  4. borahan dedi ki:

    Artık asp.net için dll indirilmiyor galiba.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.