Merhaba asp.net/c# web uygulamamın giriş paneline reCAPTCHA 'I'm not a robot' uyguluyorum. Mssql veritabanındaki userlarım giriş yapabiliyor. Fakat şöyle bir sorunum var farklı bilgisayarlar üzerinden giren kullanıcılar doğrulama butonuna tıkladığında resim seçtirmesi gerekirken, direkt tik oluşuyor ve doğrulamayı onaylıyor. Bunun sebebi nedir? Nasıl her giriş panelinde doğrulama isteyebilirim ve otomatik tik olayını kaldırabilirim?
public class GoogleV2
{
public bool Success { get; set; }
public List<string> ErrorCodes { get; set; }
public static bool Validate(string encodedResponse)
{
if (string.IsNullOrEmpty(encodedResponse)) return false;
var client = new System.Net.WebClient();
var secret = "6....";
if (string.IsNullOrEmpty(secret)) return false;
var googleReply = client.DownloadString(string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", secret, encodedResponse));
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var reCaptcha = serializer.Deserialize<GoogleV2>(googleReply);
return reCaptcha.Success;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
var encodedResponse = Request.Form["g-Recaptcha-Response"];
var isCaptchaValid = GoogleV2.Validate(encodedResponse);
if (isCaptchaValid)
{
using (SqlConnection con = new SqlConnection(cs))
{
using (SqlCommand cmd = new SqlCommand("SELECT * from users where users_ad= @P1 and users_pass= @P2", con))
{
cmd.Parameters.AddWithValue("@P1", TextBox1.Text);
cmd.Parameters.AddWithValue("@P2", TextBox2.Text);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
Session["users_ad"] = dr["users_ad"].ToString();
Response.Redirect("ABC.aspx");
}
else
{
Label1.Text = "<strong style = 'color:red;'> **KULLANICI ADI VEYA PAROLA HATALI!<strong>";
}
con.Close();
}
}
}
else
{
Label1.Text = "<strong style = 'color:red;'> **RECAPTCHA ONAYLANMADI!<strong>";
//Response.Write("HATA");
//Response.End();
}
}