using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.UI;
using System.Web.UI.WebControls;
using static WebApplication8.Default;
namespace WebApplication8
{
public partial class Default : System.Web.UI.Page
{
public class ResponseToken
{
public bool success { get; set; }
public float score { get; set; }
public string action { get; set; }
public DateTime challenge_ts { get; set; }
public string hostname { get; set; }
public List<string> ErrorCodes { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (GoogleReCaptchaV3Validate())
{
lblmsg.Text = "Valid Recaptcha";
lblmsg.ForeColor = System.Drawing.Color.Green;
}
else
{
lblmsg.Text = "Not Valid Recaptcha";
lblmsg.ForeColor = System.Drawing.Color.Red;
}
}
public bool GoogleReCaptchaV3Validate()
{
string Response = Request["g-recaptcha-response"];//Getting Response String Append to Post Method
string recaptcha = Request.Form["returnToken"].ToString();
string aaa = Request.Form["abc"];
//if (recaptcha == null || recaptcha == "")
//{
// return false;
//}
string securetKey = "6Ld1XXXXX(略刪)";
bool Valid = false;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create
("https://www.google.com/recaptcha/api/siteverify?secret=6Ld1XXXXX(略刪)&response=" + recaptcha);
try
{
//Google recaptcha Response
using (WebResponse wResponse = req.GetResponse())
{
using (StreamReader readStream = new StreamReader(wResponse.GetResponseStream()))
{
// jsonResponse always "", why ?
string jsonResponse = readStream.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
//MyObject data = js.Deserialize<MyObject>(jsonResponse);// Deserialize Json
//JObject jObject = js.Deserialize<JObject>(jsonResponse);// Deserialize Json
// Rootobject object = JsonConvert.DeserializeObject<Rootobject>(jsonString);
//JObject jObject = JsonConvert.DeserializeObject<JObject>(jsonResponse);
ResponseToken response = new ResponseToken();
//response = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponseToken>(jsonResponse);
ResponseToken jObject = JsonConvert.DeserializeObject<ResponseToken>(jsonResponse);
//bool s = jObject.success;
//Valid = Convert.ToBoolean(jObject.success);
}
}
return Valid;
}
catch (WebException ex)
{
throw ex;
}
}
}
}
|