在ASP.NET MVC VIew中进行Google reCaptch自定义

时间:2013-06-27 07:16:39

标签: asp.net-mvc razor recaptcha mvcrecaptcha

我使用谷歌reCaptch进行captca验证,所以我想根据我的应用程序设计自定义。 我有谷歌reCaptch的用户html助手。 那么如何使用 razor html helper 在视图中自定义其高度,宽度和其他外观? 真的陷入了这个定制问题。

1 个答案:

答案 0 :(得分:0)

我意识到这篇文章有点陈旧,但我最近做了类似的事 - 所以我觉得我可以提供帮助(如果你还需要的话)

我知道你想使用Html助手,但是我已经广泛地研究了这个问题 - 没有人真正提供这个。 The reCaptcha Developers Guide有一个关于如何实现自己的风格和验证的指南 - 一个好主意是将验证抽象到接口后面以允许正确的测试。

您可以或多或少地从reCaptcha文档中复制HTML示例,但验证代码看起来(以非常基本的形式)是这样的:

            bool success;
            const string url = "http://www.google.com/recaptcha/api/verify";
            var ip = Request.UserHostAddress;
            var d = new NameValueCollection
            {
                { "privatekey", "6Ld-lN0SAAAAAB1c2Mzgu2pNjkLxn9W07FsAMLgc" },
                { "remoteip", ip },
                { "challenge", Request.Form["recaptcha_challenge_field"] },
                { "response", Request.Form["recaptcha_response_field"] }
            };

            using (var client = new System.Net.WebClient())
            {

                var response = client.UploadValues(url, d);
                var result = Encoding.ASCII.GetString(response);
                success = result.StartsWith("true");
            }
            if (!success)
                ModelState.AddModelError("recaptcha_response_field", "Please enter the correct words");
            else
                Response.Write("CAPTCHA check is valid - we think you are a human");