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.
2- Yönlendirilmiş olduğumuz sayfada Sing Up Now! düğmesine tıklayıp giriş yapıyoruz.
3- Giriş işlemini gerçekleştirdikten sonra gelen ekranda Domain adresine reCaptcha kullanacağımız sitemizi yazıyoruz. Sonra Create deyip devam ediyoruz.
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.
Dll indirme için;
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.
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]
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]
Yararlı olması dileğiyle…
teşekkürler. Eline sağlık.
Eline sağlık Mesut. işime yaradı.
Sade anlaşılır anlatmışsınız. elinize sağlık faydalı bir içerik olmuş.
Teşekkürler Emin.
Artık asp.net için dll indirilmiyor galiba.