=x= 🌵 CONTACT Page 寄信页的「我不是机器人」验证功能,後端实作。
📌 Google reCAPTCHA 服务可用来判断是否为真人使用,保护网站免受欺诈活动、垃圾邮件和滥用。
👀 参考官网资料 : Using reCAPTCHA with ASP.NET
🌵 网域先填 localhost 方便测试。(本机端)
🌵 完成後跳转网页会产生一组公钥 (public_key) 跟私钥 (private_key)。
👺 测试时不需要申请 Google Cloud Platform 上的 reCAPTCHA Enterprise 金钥,商用金钥会有计量计价规定,如果不小心因为被导引到该页面而申请了商用金钥,建议可以先删除,本人在把 code 推到 GitHub 备份时,收到 google 警告信才发现这件事(汗)。
<configuration>
内加入以下程序码并填入公钥及私钥<configuration>
<!-- Add code start -->
<appSettings>
<!-- Your site key for your reCAPTCHA control -->
<add key="RecaptchaSiteKey" value="这里填入步骤1.注册後取得之公钥" />
<!-- Your secret key for your reCAPTCHA control -->
<add key="RecaptchaSecretKey" value="这里填入步骤1.注册後取得之私钥" />
</appSettings>
<!-- Add code end -->
</configuration>
<%@ Page %>
下有新增一行 code 以加入设定<!-- 上方自动产生的设定 -->
<%@ Register Assembly="Recaptcha.Web" Namespace="Recaptcha.Web.UI.Controls" TagPrefix="cc1" %>
<!-- Render recaptcha API script (非必要,同页使用两个以上时才需要)-->
<cc1:RecaptchaApiScript ID="RecaptchaApiScript1" runat="server" />
<!-- Render recaptcha widget -->
<cc1:RecaptchaWidget ID="Recaptcha1" runat="server" RenderApiScript="False" />
🧠 NuGet 成功安装後重开专案,工具箱搜寻 Recaptcha 就会出现控制项,记得 .aspx 页面要将画面切到"设计
"模式,"原始档"模式可能会隐藏而找不到。
🌵 执行网页需看到我不是机器人勾选框里面无红字错误,才是成功。
if (String.IsNullOrEmpty(Recaptcha1.Response)) {
lblMessage.Visible = true;
lblMessage.Text = "Captcha cannot be empty.";
}
else {
var result = Recaptcha1.Verify();
if (result.Success) {
//此处可加入"我不是机器人验证"成功後要做的事
}
else {
lblMessage.Text = "Error(s): ";
foreach (var err in result.ErrorCodes) {
lblMessage.Text = lblMessage.Text + err;
}
}
}
📌 稍微说明一下为什麽最後会介绍这个写法,网路上可以查到的作法很多,比较混乱的是一开始试着查资源时,有可能查到的是旧的写法、JavaScript 作法、其它语言,或者那是 MVC 不是 Web Forms,对於还没有接触 MVC 的人,如果关键字搜寻一直查到 MVC 建议加入 Web Forms 关键字;而我是因为看不太懂 Google 官网提供的写法,於是从它建议的 Nuget 安装一路往回去看 GitHub 提供的范例,范例里相对 Google 有更完整的示范 code 可以看,多了些判断到底我跟着这样做可不可行,而不是复制贴上後,然後就没有然後了,只能呆在原地动弹不得,这是比较特别想讲的地方。
👀 上方的作法参考 NutGet 的 GitHub : https://github.com/tanveery/recaptcha-net
👀 上线申请 Google Cloud Platform : https://console.cloud.google.com/security/recaptcha
不同的应用程序都有不一样的安装方式,有的需要下载安装包,有些则是下指令安装,还有些可以藉由 App ...
https://pythonprogramminglanguage.com/text-to-spee...
有一位学生想知道每天读书时间与考试成绩之间的线性相关程度,所以蒐集了每次期中期末考的国英数自社的成绩...
写在前面 test for placeholder test for placeholder tes...
延续上一篇的 ViewModel 结构 现在假设使用者提出要动态 新增/删除 Collection ...