Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Ethem Evlice
Ethem Evlice
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
2 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: imagevalidator karakterleri kaynak kontrol olurken otomatik resimli sayfadaki sayfamizda sinifindan sinifini siniflari sitelesine sitenize validatorlar ASP.NET Ethem Evlice
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : ASP.NET
Yayınlanma Tarihi : 30.7.2004
Okunma Sayısı : 28882
Yorum Sayısı : 1     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 21.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 21.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 21.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 21.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
ImageValidator Kullanarak Otomatik Kayıtları Engelleme
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bir web sitelesine kayıt olurken çoğu zaman karşılaştığımız bir cümle vardır: “Lütfen resimde gördüğünüz karakterleri yandaki alana giriniz!”. Arkasından “Biz otomatik olarak kayıt yapan robotlardan kendimizi korumak için bu kontrolü yapıyoruz.” diye bir cümle ile devam eder.



Bir sitemiz ve bu siteye kayıtlı yaklaşık 500 üyemiz var. Bir gün sonra veritabanımıza baktığımızda 1 milyon üyemiz olmuş. Bir günde bu kadar kişinin sitenize girip üye olduğunu gördüğünüzde büyük bir şaşkınlık yaşayacaksınız.

Bir gün uyanığın biri resimli kontrol yapmadığınız için yazdığı bir programla sitenize gerçek olmayan üye kayıtları yapabilir. Sizin de böyle bir şeyden korunmanız için “ImageValidator” component’ini kullanmanız gerekiyor.

Kullanımı:

Bu uygulamayı kullanmak için yapmanız gereken sadece birkaç satır koddan ibaret. Öncelikle /bin klasörüne Erle.Controls.dll dosyasını atalım ve aspx sayfamızın ilk satırına şu satırı yerleştirelim:

<%@ Register TagPrefix="ImageCtrl" Namespace="Erle.Controls" Assembly="Erle.Controls" %>

Bu satır Erle.Controls.dll dosyasındaki Erle.Controls isim alanı içindeki sınıfları web sayfamızda <KayitAdi:Sinif> şeklinde kullanmamızı sağlar. Artık .dll içindeki tüm sınıfları kullanabileceğimize göre ilk kontrolümüzü yazalım:

<form runat="server">
<ImageCtrl:RegistrationImage Width=70 Height=20 Digits=4
ID="RegistrationImage1" ImageUrl="RegistrationImage.aspx"
Runat="server" />
Bu komut ekrana 70px genişlik, 20px yükseklik ve 4 adet rakamdan oluşan bir resim çizer. Bunun hemen yanına da ziyaretçinin gördüğü karakterleri girebileceği bir TextBox yerleştirelim:

<ASP:TextBox ID="TextBox1" Runat="server" Size=8 value="" />

Şimdi gelelim işin can alıcı noktasına. Resmi ve girilen karakteri nasıl karşılaştıracağız? Cevap çok basit: System.Web.UI.WebControls.BaseValidator sınıfından türemiş ImageValidator sınıfını kullanarak.

<ImageCtrl:ImageValidator ID="ImageValidator1"
ImageControlToValidate="RegistrationImage1"
ControlToValidate="TextBox1"
ErrorMessage="Gördüğünüz sayıları giriniz"
Display="Static" RunAt="server" />
Web sayfamızda ImageValidator sınıfını kullanıyoruz, karşılaştırılacak resim olarak ImageControlToValidate="RegistrationImage1", neyle karşılaştıracağımızı da ControlToValidate="TextBox1" parametresiyle belirtiyoruz. Kayıt sayfasına bir adet düğme koyalım ki ziyaretçinizin girdiği değeri kontrol etmek için sunucuya sayfayı gönderebilsin.

<asp:button text="Register" id="Register" onClick="Register_Click" Runat="server" />
</form>


Dikkat ederseniz düğmenin tıklanması olayı sonucu çalışan metot ismini Register_Click olarak belirttik. Metodumuz şu şekilde olacak:

void Register_Click(Object sender, EventArgs e)
{
   if (Page.IsValid) // then
   { //’’ Page.IsValid=true ise sayfadaki bütün Validatorlar
      //’’ geçerli demektir. (ImageValidator da dahil)
      //’’ BURASI COK ONEMLI
      //’’ Eger kod dogru girildiyse buraya gelir
      //’’ burada kayit islemine baslayabilirsin.

      //’’ DIKKAT:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      //’’ Bu kod "Erle.Controls.KeySecretCode" adlı sessionda saklaniyor.
      //’’ Kayit islemi bittikten sonra bu kodu silebilirsiniz.
      Session.Remove("Erle.Controls.KeySecretCode");
      //’’ Response.Redirect("kayitok.aspx");
   }
   else
   {
      //’’Gecerli sayi girilmedi ya da sayfadaki başka validatorlar denetlenemedi.
   } //end if
} //end sub

Sonuç:

Bu makalede sitemizi otomatik kayıtlardan koruma yöntemlerinden biri olan resimli güvenlik hakkında bilgi vermeye ve bunu nasıl uygulayabileceğimizi anlatmaya çalıştım. Ayrıca projenin kaynak kodlarını inceleyerek web sayfalarında kullanılmak üzere BaseValidator sınıfından kendiniz de başka Validator sınıfları türetebilirsiniz.

Projenin kaynak kodunu indirmek için tıklayınız.

Makale:
ImageValidator Kullanarak Otomatik Kayıtları Engelleme ASP.NET Ethem Evlice
  • Yazılan Yorumlar
  • Yorum Yaz
NİS
18
2006
Güzel bir çalışma. Bir iki noktada hatırlatma yapmak isterim. Eğer bu şekliyele kullanılırsa imagei parseden bir uygulama ile control işlevsiz hale getirilebilir. GDI+ ile çok uğraşmadım ama resme gürültü noise ekleme veveya HatchBrush objesi ile kullanarak daha profesyonel hale getirilebilir. Bir de.. COPYRIGHT kısmındaki yazı özetle eğer güncellenirse bildirin veya güncellemelerde sorumluluk kabul etmem gibi olursa daha iyi olacağını düşünüyorum. Bu yazı olmasaydı, seni tanıyamaz ve mesaj atamazdım. Bu nedenle sen zaten bu yazı ile olayı insanlara duyurmayı hedeflemişsin...İyi çalışmalar.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor