Asp.Net MVC 3 – ReCaptcha

Merhabalar arkadaşlar bu makalemizde google’ın bir hizmeti olan recaptcha uygulamasının nasıl kullanıldığını görüyor olacağız.

Kullanımı her yapıya göre farklılık göstersede aslında birbirleri arasında pek fazla fark yok. Biz makalemizde Asp.Net MVC 3 için örnek yapacağız.

1) En başta projemize Microsoft-Web-Helpers tool’unu kurmamız gerekmekte. Bunun için solution’a sağ tıklayıp “Add Package Reference” diyoruz. Daha sonra source kısmında Microsoft-Web-Helpers’i aratıp gerekli tool’a ulaşıyoruz. Install dedikten sonra projemizin reference kısmına Systems.Web.Helpers dll’ini referans olarak ekliyor. Bu işlemi yaptıktan sonra; http://www.google.com/recaptcha sayfasına girip google hesabınız ile giriş yapacaksınız. Üye olduktan sonra bir domain girmenizi isteyecek ve size 2 adet key üretecek. Bunlardan biri publicKey diğeri ise privateKey’dir. Daha sonra reCAPTCHA plugins and libraries diyerek gerekli dll dosyasını indirip reference’lerimize dahil ediyoruz.

2)Şimdi projemizin source kısmına recaptcha’i ekleyelim. Bunun için ekleyeceğimiz razor veya aspx webformumuza

@{
ReCaptcha.PublicKey = "Sizin public Keyiniz";
}
@ReCaptcha.GetHtml(theme: "red")

kodlarını ekliyoruz. Theme seçeneği olarak bizlere 4 farklı seçenek sunuyor. Ayrıca kendimizde bir theme generate edebiliyoruz. Bunlar ile ilgili geniş bilgi http://www.google.com/recaptcha nin dökümantasyon kısmında mevcut. Bu işlemi yaptıktan sonra recaptcha sayfamıza gelecektir.

3)Artık tek bir şey kaldı, kodu kontrol etmek.. Kodu kontrol etmek için ise Model’imize

if (ModelState.IsValid)
{
if (ReCaptcha.Validate("sizin privateKey’iniz"))
{
Response.Write("Güvenlik kodu doğrulandı");
}
else
{
Response.Write("Güvenlik kodunu yanlış girdiniz.");
}


}

 

Bu makaleyi ekran görüntüleriyle süslemek ve genişletmek isterdim fakat, aslına bakarsanız 2 saat once bir projemde lazım olduğu için kendim kullandım. Ve unutmamak için 10 dk içerisinde buraya karaladım. Mutlaka ama mutlaka birilerine yardımcı olacaktır 🙂 Takıldığınız yer olur ise makalenin altına yorum bırakabilirsiniz, mutlaka cevaplarım..
Hoşçakalın!

Asp.Net alert metodu ( Hayat kurtarır )

Hayat kurtaran alert metodu..

Herkese merhabalar, bu dersimizde asp.net’de en çok ama en çok sorunla karşılaştığımız alert zırvasından bahsediyor olacağız. Sürekli 4 karelik bir web sayfasında en alttaki butonda kullanıcıya mesaj bildirmek isterken hep ajaxlarla updatepanellerle boğuşuruz boğuşuruz ve boğuşuruz…
Artık ajax’a son, artık uğraşmaya son, artık alert metodumuz var 🙂
Hemen projenizde yeni bir class oluşturun alert isminde ve bu class ile bu metodu içerisine bırakıverin. Sonrasında label.text = “cansıkıcı” şeklinde mesaj vereceğinize Alert.Show(“Mesajınız”) şeklinde kullanın. Framework’teki MessageBox.Show(“Mesaj”)’den ne farkı kaldı. Bu classı bir kere projenize entegre edin sonrasında lazım olduğu yerde çağırıp kullanın. Haydi kolay gelsin..

using System.Web;
using System.Text;
using System.Web.UI;
public static class Alert
{
public static void Show(string message)
{
// Buradaki tek tırnak mesaj silmek için izin ister.
string cleanMessage = message.Replace("'", "\\'");
string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>";
// Yüklenecek webformu alır.
Page page = HttpContext.Current.CurrentHandler as Page;
// Sayfa üzerinde allready olup olmadığını kontrol eder.
if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
{
page.ClientScript.RegisterClientScriptBlock(typeof(Alert), "alert", script);
}
} 
}

 

UrlRewriting Cannot use a leading to exit above the top directory Hatası

Herkesin UrlRewriting hakkında ufakda olsa bilgisi vardır. Uzun lafın kısa bu uygulamayı urlrewriting sınıfını kullanan yada web config üzerinden işlem yapan arkadaşlar bir hata iler karşılaşıyorlar.

Bu Hatanın tam anlamı “En üst dizine çıkılamıyor” denilebilinir..

Yada Uygulamanızdaki resimlerin gözükmediğini de farketmiş olabilirsiniz. Bu durumda yapacağınız işlem ~/ ‘i kullanmaktır.

Örnek : .. imageUrl=”~/resimler/hako.jpg”/>

Bu şu demek oluyor En üst dizindeki Resimler Klasoru içinde Hako.jpg’e eriş. Dolayısı ile siz urlrewriting işlemi olsun yada olmasın Visual Studio içerisinde ~/ kullanır iseniz sorunu çözmü olacaksınızdır.

Not : Server taraflı uygulamalarda çalışmaktadır.

Umarım faydalı olur.

Aspnet Resim Boyutlandırma Kodu

public System.Drawing.Image ResimBoyutlandir(System.Drawing.Image imgPhoto, int Yukseklik)
{
int sourceWidth = imgPhoto.Width;
int sourceHeight = imgPhoto.Height;

int destWidth = Yukseklik;
int destHeight = 200;

Bitmap bmPhoto = new Bitmap(destWidth, destHeight, PixelFormat.Format24bppRgb);
bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);

Graphics grPhoto = Graphics.FromImage(bmPhoto);
grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic; 
grPhoto.FillRectangle(Brushes.White, 0, 0, destWidth, destHeight);

grPhoto.DrawImage(imgPhoto, new Rectangle(0, 0, destWidth, destHeight), new Rectangle(0, 0, sourceWidth, sourceHeight), GraphicsUnit.Pixel);

grPhoto.Dispose();
return bmPhoto;
}

 

Kullanışı

if (FileUpload1.HasFile == true)
{
string imageName = FileUpload1.FileName;
if (imageName != null)
{

System.Drawing.Image imgPhotoVert = System.Drawing.Image.FromFile(Server.MapPath(Klasor));
System.Drawing.Image imgPhoto = null;
Images img = new Images();
imgPhoto = img.ResimBoyutlandir(imgPhotoVert, yeniW); //ScaleByPercent adlı mekanızmaya yolluyoruz aldığımız bilgileri.
imgPhoto.Save(Server.MapPath("~/upload/" + gelenResim), ImageFormat.Jpeg); // Ekrana basıyoruz..
imgPhoto.Dispose();

}

 

Teşekkürler, iyi çalışmalar..